Android:得到手机上安装的所有应用的名字以及应用所在的包名
这是在Android模拟器上测试的,得到应用的总个数为:51个。我安装在这个模拟器上的应用就是这个用于测试的这个应用。
下面的代码只是一个方法,测试时这个方法就是用来响应一个按钮的。代码如下:
public void getAllAppNames(View view){
PackageManager pm=getPackageManager();
//PackageManager.GET_UNINSTALLED_PACKAGES==8192
List<PackageInfo> list2=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
//PackageManager.GET_SHARED_LIBRARY_FILES==1024
//List<PackageInfo> list2=pm.getInstalledPackages(PackageManager.GET_SHARED_LIBRARY_FILES);
//PackageManager.GET_META_DATA==128
//List<PackageInfo> list2=pm.getInstalledPackages(PackageManager.GET_META_DATA);
//List<PackageInfo> list2=pm.getInstalledPackages(0);
//List<PackageInfo> list2=pm.getInstalledPackages(-10);
//List<PackageInfo> list2=pm.getInstalledPackages(10000);
for (PackageInfo packageInfo : list2) {
//得到手机上已经安装的应用的名字,即在AndriodMainfest.xml中的app_name。
String appName=packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
//得到应用所在包的名字,即在AndriodMainfest.xml中的package的值。
String packageName=packageInfo.packageName;
Log.i(TAG, "应用的名字:"+appName);
Log.i(TAG, "应用的包名字:"+packageName);
j++;
}
Log.i(TAG, "应用的总个数:"+j);
}
说明:pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES)中的参数从-10、0、到10000,
最后得到的结果都是一样的(51)。这个参数的作用,还没有搞清楚。