Comment obtenir des applications installées sur Android et aucune application système?
Je veux obtenir toutes les applications qui s'affiche dans l'écran de menu. Mais, maintenant, je ne reçois que l'utilisateur a installé des applications ou de la totalité de la demande (notamment par le système d'application).
Mon code actuel est:
final PackageManager pm = getActivity().getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_META_DATA);
ArrayList<PackageInfo> aux = new ArrayList<PackageInfo>();
for (int i = 0; i < apps.size(); i++) {
if (apps.get(i).versionName != null && ((apps.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 1)) {
aux.add(apps.get(i));
}
Avec ce code, je peux obtenir à l'utilisateur les applications installées, et si je commente le 'si' instruction, je vais obtenir le système d'applications.
Donc, je veux obtenir de l'utilisateur les applications et les applications telles que les contacts, galerie et ainsi de suite.
Mise à JOUR:
final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
source d'informationauteur beni
Vous devez vous connecter pour publier un commentaire.
À L'Aide De PackageInfo:
À L'Aide De ResolveInfo:
À L'Aide De ApplicationInfo:
Ce filtre le système de package. Voir cette question. Crédits: Nelson Ramirez et Kenneth Evans.
J'ai eu la même exigence. En fin de compte j'ai ajouté un autre état afin de filtrer la liste des applications. Je viens de vérifier si l'application a 'lanceur d'intention".
Ainsi, le code résultant ressemble à...
Code ci-dessous va vous donner toutes les applications liées au Système d'Exploitation.
Ce ne sera pas inclure des Applications comme YouTube, Gmail, etc