listview - opening application detail setting intent from list-view showing list of installed applications [Android] -
i developing application manager app android in installed applications displayed in listview
using package-manager class. wanted open action_application_details_settings
intent of selected application using onitemclicklistener() on listview
when position adapterview
doesn't open settings of selected application. have searched lot issue on stackoverflow doesn't found right solution. code following:
public class activity_appmanager extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.layout_app_manager); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); getsupportactionbar().setdisplayhomeasupenabled(true); listview userinstalledapps = (listview)findviewbyid(r.id.installed_app_list); list<applist> installedapps = getinstalledapps(); appadapter installedappadapter = new appadapter(activity_appmanager.this, installedapps); userinstalledapps.setadapter(installedappadapter); list<applist> res = new arraylist<applist>(); final list<packageinfo> packs = getpackagemanager().getinstalledpackages(0); userinstalledapps.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> adapterview, view view, int position, long l) { packageinfo p = packs.get(position); string packagename = p.applicationinfo.packagename; // packageinfo packageinfo = (packageinfo) adapterview.getitematposition(position); toast.maketext(activity_appmanager.this, "" + packagename, toast.length_short).show(); intent intent = new intent(android.provider.settings.action_application_details_settings); intent.setflags(intent.flag_activity_new_task); intent.setdata(uri.parse("package:" + packagename)); startactivity(intent); } }); } private list<applist> getinstalledapps() { list<applist> res = new arraylist<applist>(); list<packageinfo> packs = getpackagemanager().getinstalledpackages(0); (int = 0; < packs.size(); i++) { packageinfo p = packs.get(i); if ((issystempackage(p) == false)) { string appname = p.applicationinfo.loadlabel(getpackagemanager()).tostring(); drawable icon = p.applicationinfo.loadicon(getpackagemanager()); res.add(new applist(appname, icon)); } } return res; } private boolean issystempackage(packageinfo pkginfo) { return ((pkginfo.applicationinfo.flags & applicationinfo.flag_system) != 0) ? true : false; } }
Comments
Post a Comment