2012-01-12 5 views
0

Je souhaite filtrer l'application système uniquement en utilisant leur nom de package. Comment puis-je faire ceci?Comment filtrer les applications système?

Je connais la fonction ci-dessous filtrer l'application du système, mais comme je l'ai dit ci-dessus seulement en utilisant le nom du paquet.

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

Si vous fournissez usecase, cela aiderait à répondre à – nandeesh

Répondre

2

Comment puis-je faire cela?

Vous n'en avez pas. Ce n'est pas possible. Il n'y a pas de convention de nommage des paquets pour les "applications système".

0

utilisant uniquement le nom du paquet

Vous pouvez filtrer les applications de système basées sur les noms de package, mais vous aurez éventuellement besoin toujours ApplicationInfo de l'application.

Vous pouvez utiliser cette méthode:

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; 
} 
Questions connexes