Android获取系统应用及安装应用的权限列表

时间:2025-01-27 15:32:28

主要通过PackageManager中的方法

代码:

public class InstallApps extends ListActivity {
   

    HashMap<String, String[]> map=new HashMap<String, String[]>();
    List<String> packagelist=new ArrayList<String>();
    List<String> systemApp=new ArrayList<String>();
    protected void onCreate( savedInstanceState) {
        (savedInstanceState);
        PackageManager pm=getPackageManager();
      //List<PackageInfo> mPackageinfo=  (PackageManager.GET_PERMISSIONS);
       Intent query=new Intent(Intent.ACTION_MAIN);
       ("");
        List<ResolveInfo> resolves= (query, PackageManager.GET_ACTIVITIES);
       for (int i = 0; i < (); i++) {
          ResolveInfo info= (i);

  / /判断是否为系统级应用
         if((&ApplicationInfo.FLAG_SYSTEM)<=0){
             /*安装的应用*/
             String packagename=(pm).toString();    
            String[] permission;
            try {
                permission = (, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
                (packagename);
                (packagename, permission);
          } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                ();
            }
           
          } else{
              /*系统应用*/
              String packagename=(pm).toString();
              String[] permission;
            try {
                permission = (, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
                (packagename);
                (packagename, permission);
             } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                ();
             }
        
             
          }
       
    }
    /*  判断是否属于系统应用
      for (int i = 0; i < (); i++) {
       PackageInfo info=(i);
       if((&ApplicationInfo.FLAG_SYSTEM)<=0){
           String packagename=(pm).toString();    
          String[] permission= ;
          (packagename);
          (packagename, permission);
        } else{
            String packagename=(pm).toString();
            String[] permission= ;
             (packagename);
            (packagename, permission);
           
        }
    }*/
      (systemApp);
   
      getListView().setAdapter(new ArrayAdapter<String>(this, .simple_list_item_1, packagelist));
      getListView().setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
            // TODO Auto-generated method stub
            String[]permission=((position));
            StringBuilder sb=new StringBuilder();
            for (int i = 0; i < ; i++) {
              ("权限"+permission[i]+"\n");
            }
            (getApplicationContext(), sb,Toast.LENGTH_LONG ).show();
           
        }
       });
       
       
    };

}