Kullanıcıyı yüklü tüm uygulamalarla sunmak istediğim bir uygulama üzerinde çalışıyorum ve ona bir tane seçip onunla bir şeyler yapmasına izin verin. Bazı sorunlarım olmasına rağmen bir eğitici (bu: http://impressive-artworx.de/2011/list-all-installed-apps-in-style/) takip ettim. Eğiticiyi uyguladıktan sonra, yalnızca önceden yüklenmiş olmayan (alışılamayan tüm arka plan uygulamaları gibi) uygulamaları kullanıyorum. Bu, kullanıcının oyun deposundan indirdiği uygulamaları istiyorsanız harika. Sorun benim uygulamamda, Youtube ve Tarayıcı gibi başlatılabilir sistem uygulamalarını göstermek, ancak Arama Uygulaması Sağlayıcısı gibi başlatılamayanları görmek istemem. İşte Yüklü tüm uygulamaları alırken başlatılamayan uygulamaları filtreleyin
uygulama almak zaman kullanıyorum kodu:private List<App> loadInstalledApps(boolean includeSysApps) {
List<App> apps = new ArrayList<App>();
// the package manager contains the information about all installed apps
PackageManager packageManager = getPackageManager();
List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA
for(int i=0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
App app = new App();
app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
app.setPackageName(p.packageName);
app.setVersionName(p.versionName);
app.setVersionCode(p.versionCode);
CharSequence description = p.applicationInfo.loadDescription(packageManager);
app.setDescription(description != null ? description.toString() : "");
apps.add(app);
}
return apps;
}
Şimdi sorum şu; Başlatılamayan uygulamaları filtrelemenin en iyi yolu nedir?
Herhangi bir yardım için teşekkür ederiz!
bazı uygulamalar getLaunchIntentForPackageName için boş dönmek çünkü bu, iyi bir fikir değildir. Bu çözümle, "Telefon" uygulamasının uygulamalar listesinde olmaması sorununu yaşadım. Daha iyi bir çözüm için buraya bakın: https://stackoverflow.com/a/30446616/4274651 – Janosch