Fetch list of all apps on Android device (esp. Android TV) -


i'm trying fetch list of launchable apps on android tv (nexus player) running 5.1.1.

private static set<resolveinfo> getinstalledappsfrom(packagemanager packagemanager) {     set<resolveinfo> activities = new hashset<>();     activities.addall(launcheractivitiesin(packagemanager));     if (build.version.sdk_int >= build.version_codes.lollipop) {         activities.addall(leanbackactivitiesin(packagemanager));     }     return activities; }  private static list<resolveinfo> launcheractivitiesin(packagemanager packagemanager) {     intent intent = new intent()             .setaction(intent.action_main)             .addcategory(intent.category_launcher);     return getresolveinfos(packagemanager, intent); }  private static list<resolveinfo> getresolveinfos(packagemanager packagemanager, intent intent) {     return packagemanager.queryintentactivities(intent, packagemanager.match_default_only); }  @targetapi(build.version_codes.lollipop) private static list<resolveinfo> leanbackactivitiesin(packagemanager packagemanager) {     intent intent = new intent()             .setaction(intent.action_main)             .addcategory(intent.category_leanback_launcher);     return getresolveinfos(packagemanager, intent); } 

using above, can list of apps, doesn't complete list: netflix installed on device doesn't display, , settings missing.

running same code on android phone running 5.1.1 include settings app.

is there category_launcher and/or category_leanback_launcher might prevent apps showing up?

i tried:

packagemanager.getinstalledapplications(packagemanager.permission_granted); 

to same effect.

the full code (at point of writing question) can checked out on github here, snippets appsrepository class.

the question did not contain enough detail answer correctly. set<resolveinfo> correct - contained entry netflix.

the issue came trying use them:

intent launchintent = packagemanager.getlaunchintentforpackage(applicationinfo.packagename); 

here, launchintent can null, if package name correct. there call may return correct intent:

intent launchintent = packagemanager.getleanbacklaunchintentforpackage(applicationinfo.packagename); 

still though, not find intent launch system settings. google settings displayed play services. change accepted answer if can solve this!


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -