首先,來個(gè)簡單的,獲取本應(yīng)用的信息 :
//獲取 build.gradle 中的 versionName 和 versionCode
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 0);
String name = info.versionName;
int code = info.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
是不是很簡單 !
獲取其他應(yīng)用的信息
//獲取已安裝應(yīng)用的列表
List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
if (packages.size() > 0) {
for (int i = 0; i < packages.size(); i++) {
PackageInfo packageInfo = packages.get(i);
String packageName = packageInfo.packageName; //app包名
String versionName = packageInfo.versionName; //app的versionName
int versionCode = packageInfo.versionCode; //app的versionCode
String appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString(); //app名
Drawable icon = packageInfo.applicationInfo.loadIcon(getPackageManager()); //app圖標(biāo)
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
//非系統(tǒng)應(yīng)用
} else {
//系統(tǒng)應(yīng)用
}
}
}
判斷某應(yīng)用是否已安裝
private boolean checkHasInstalled(String packageName) {
PackageInfo pi;
try {
pi = getPackageManager().getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
return pi != null;
}