我想仅使用其包名过滤系统应用。我怎么能这样做?
我知道下面的函数会过滤系统应用程序,但正如我上面所说的仅使用包名。
private boolean isSystemPackage(PackageInfo pkgInfo)
{
return (pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
答案 0 :(得分:2)
我该怎么做?
你没有。这不可能。 “系统应用程序”没有包命名约定。
答案 1 :(得分:0)
仅使用包名称
您可以根据软件包名称过滤掉系统应用程序,但最终总是需要应用程序的 ApplicationInfo 。
您可以使用此方法:
private boolean isSystemPackage(String packageName){
PackageManager packageManager = MyActivity.this.getPackageManager();
ApplicationInfo applicationInfo = null;
try {
applicationInfo = packageManager.getApplicationInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) ? true
: false;
}