2012-01-12 85 views
0

我想仅使用包名称来过滤系统应用程序。我怎样才能做到这一点?如何过滤系统应用程序?

我知道下面的函数过滤系统应用程序,但正如我上面所说的只使用包名称。

private boolean isSystemPackage(PackageInfo pkgInfo) 
{ 
    return (pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; 
} 
+0

如果你提供的用例,这将有助于在回答 – nandeesh 2012-01-12 12:58:20

回答

2

我该怎么做?

你不知道。这不可能。 “系统应用程序”没有软件包命名约定。

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; 
} 
相关问题