Android 获取系统所有APP名称,包名,版本
public class AllAPPActivity extends AppCompatActivity {
private static final String TAG = "AllAPPActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_app);
allAPP();
}
private void allAPP() {
List<ApplicationInfo> installedApps = getPackageManager().getInstalledApplications(0);
for (ApplicationInfo appInfo : installedApps) {
CharSequence getAppName = getPackageManager().getApplicationLabel(appInfo);
String appName = getAppName.toString();//获取到app名
String packageName = appInfo.packageName;
String versionName = versionName(this, packageName);
int versionCode = versionCode(this, packageName);
Log.d(TAG, "appName=" + appName + ",packageName=" + packageName
+ ",versionCode=" + versionCode + ",versionName=" + versionName);
if (packageName.equals("com.android.test")) {
Log.e(TAG, "allPackage: 应用程序已安装" );
break;
}
}
}
public int versionCode(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
int code = 0;
try {
PackageInfo info = manager.getPackageInfo(packageName, 0);
code = info.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return code;
}
public String versionName(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
String name = null;
try {
PackageInfo info = manager.getPackageInfo(packageName, 0);
name = info.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return name;
}
}