Cum să filtrați unele dintre aplicațiile aplicației?

Trebuie să afișez un ecran cu toate aplicațiile instalate. Pot să fac asta deja, dar trebuie să filtrez câteva dintre aplicațiile de sistem. Mă descurc așa:

if((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1)

Acest lucru funcționează, dar problema este că ascunde aplicații cum ar fi Sistemul, Playerul video și Recorderul de sunet. Cu toate acestea, am nevoie și de aceste aplicații. Întrebarea este cum să facem asta?

0

2 răspunsuri

Va trebui să le filtrați manual prin numele lor de proces, de exemplu:

if (appInfo.packageName (). Equals ( "com.android.soundrecorder"))

Vă rugăm să postați mai mult din codul dvs. dacă acest lucru nu funcționează!

0
adăugat
Asta a funcționat, multumesc mult. Sper că acest lucru funcționează și cu alte versiuni Android.
adăugat autor Comic Sans MS Lover, sursa
Ar trebui să funcționeze bine cu alte versiuni Android, packageName și FLAG_SYSTEM au fost în SDK de când API-Level 1: developer.android.com/reference/android/content/pm/…
adăugat autor Nick, sursa

Dacă o aplicație este o aplicație non-sistem, trebuie să aibă o intenție de lansare prin care poate fi lansată. Dacă intenția de lansare este nulă, atunci este aplicația sistemului acesteia.

Exemplu de aplicații de sistem: "com.android.browser.provider", "com.google.android.voicesearch".

Pentru aplicațiile de mai sus, veți primi NULL când căutați intenția de lansare.

PackageManager pm = getPackageManager();
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo packageInfo:packages){
    if( pm.getLaunchIntentForPackage(packageInfo.packageName) != null ){
                String currAppName = pm.getApplicationLabel(packageInfo).toString();
               //This app is a non-system app
    }
    else{
        //System App
    }
}
0
adăugat
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md