您的位置:首页 > 其它

判断是否为系统应用的几种方法[整理]

2014-03-21 18:23 295 查看
原文链接: http://www.lepeng.net/blogger/?p=306



1. if(new File("/data/app/" + packageInfo.packageName + ".apk").exists())

2. packageInfo.versionName != null && packageInfo.applicationInfo.uid > 10000

3. if((packageInfo.applicationInfo.flags& ApplicationInfo.FLAG_SYSTEM) != 0)



* 经测试,最好使用第3个方法,另外两个不大准。

补充:: 示例代码>>

Java代码



public static boolean isSystemApplication(Context context, String packageName){

PackageManager manager = context.getPackageManager();

try {

PackageInfo packageInfo = manager.getPackageInfo(packageName, PackageManager.GET_CONFIGURATIONS);

// 1

if(new File("/data/app/"+packageInfo.packageName+".apk").exists()){

return true;

}

// 2

if(packageInfo.versionName!=null && packageInfo.applicationInfo.uid>10000){

return true;

}

// 3

if((packageInfo.applicationInfo.flags & android.content.pm.ApplicationInfo.FLAG_SYSTEM)!=0){

return true;

}

} catch (NameNotFoundException e) {

e.printStackTrace();

}

return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: