Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

my code displays installed apps having specific permissions in a listview. i want to open the settings where you can uninstall apps on each list item (app) .How do i do that?

here is the snippet for opening app's settings

packageName = "com.wagtailapp";
    try {
        // Open the specific App Info page:
        Intent intent = new Intent(
                android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.setData(Uri.parse("package:" + packageName));
        startActivity(intent);
    } catch (ActivityNotFoundException e) {
        // e.printStackTrace();
        // Open the generic Apps page:
        Intent intent = new Intent(
                android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
        startActivity(intent);

here is my activity

public class MainActivity extends Activity {

    ArrayList<String> results = new ArrayList<String>();

     @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          getInstalledApps(this);
          ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, results);

          ListView listView = (ListView) findViewById(R.id.mobile_list);
          listView.setAdapter(adapter);
       }

      private ArrayList<String> getInstalledApps(Context context) {
        PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> applist = packageManager.getInstalledPackages(0);
        Iterator<PackageInfo> it = applist.iterator();
        while (it.hasNext()) {
            PackageInfo pk = (PackageInfo) it.next();
            if ((pk.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                Log.v("system app using internet = ", ""+pk.applicationInfo.loadLabel(packageManager));
                continue;
            }

            if (PackageManager.PERMISSION_GRANTED == packageManager .checkPermission(Manifest.permission.INTERNET, pk.packageName) ||
                    PackageManager.PERMISSION_GRANTED == packageManager .checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE, pk.packageName))
                results.add("" + pk.applicationInfo.loadLabel(packageManager));
        }

        Log.v("app using internet = ", results.toString());

        return results;
    }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
190 views
Welcome To Ask or Share your Answers For Others

1 Answer

@Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      getInstalledApps(this);
      ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, results);

      ListView listView = (ListView) findViewById(R.id.mobile_list);
      listView.setAdapter(adapter);
      listView.setOnItemClickListener(this);
   }


@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) { 

    //your code here

}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...