/**
* return the list of the phone application
* @return
*/
public List<AppManagerInfo> getAppManagerInfo(){
List<AppManagerInfo> lists = new ArrayList<AppManagerInfo>();
List<PackageInfo> infos = manager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for (PackageInfo packageInfo : infos) {
AppManagerInfo myApp = new AppManagerInfo();
String packName = packageInfo.packageName;
myApp.setPackName(packName);
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
Drawable icon = applicationInfo.loadIcon(manager);
myApp.setIcon(icon);
String appName = (String) applicationInfo.loadLabel(manager);
myApp.setAppName(appName);
if(filterApp(applicationInfo)){
Log.i(TAG, "三方应用");
myApp.setSystemApp(false);
}else{
Log.i(TAG, "系统应用");
myApp.setSystemApp(true);
}
lists.add(myApp);
}
return lists;
}
思路:1.首先的到PackageManager对象
2.调用PackageManager对象的getInstalledPackages方法得到所用应用程序的PackageInfo的对象列表
3.如代码
怎样判断一样应用程序是否是系统应用程序?
可以参照手机系统应用Setting来的到
Setting下载地址:https://github.com/android/platform_packages_apps_settings