当前位置:   article > 正文

Android获取系统应用及安装应用的权限列表_cocos2dx 安卓 申请 软件安装列表权限

cocos2dx 安卓 申请 软件安装列表权限

主要通过PackageManager中的方法

代码:

  1. public class InstallApps extends ListActivity {
  2. HashMap<String, String[]> map=new HashMap<String, String[]>();
  3. List<String> packagelist=new ArrayList<String>();
  4. List<String> systemApp=new ArrayList<String>();
  5. protected void onCreate(android.os.Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. PackageManager pm=getPackageManager();
  8. //List<PackageInfo> mPackageinfo= pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
  9. Intent query=new Intent(Intent.ACTION_MAIN);
  10. query.addCategory("android.intent.category.LAUNCHER");
  11. List<ResolveInfo> resolves= pm.queryIntentActivities(query, PackageManager.GET_ACTIVITIES);
  12. for (int i = 0; i < resolves.size(); i++) {
  13. ResolveInfo info= resolves.get(i);
  14. / /判断是否为系统级应用
  15. if((info.activityInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)<=0){
  16. /*安装的应用*/
  17. String packagename=info.loadLabel(pm).toString();
  18. String[] permission;
  19. try {
  20. permission = pm.getPackageInfo(info.activityInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
  21. packagelist.add(packagename);
  22. map.put(packagename, permission);
  23. } catch (NameNotFoundException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. }
  27. } else{
  28. /*系统应用*/
  29. String packagename=info.loadLabel(pm).toString();
  30. String[] permission;
  31. try {
  32. permission = pm.getPackageInfo(info.activityInfo.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions;//获取权限列表
  33. systemApp.add(packagename);
  34. map.put(packagename, permission);
  35. } catch (NameNotFoundException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. }
  39. }
  40. }
  41. /* 判断是否属于系统应用
  42. for (int i = 0; i < mPackageinfo.size(); i++) {
  43. PackageInfo info=mPackageinfo.get(i);
  44. if((info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)<=0){
  45. String packagename=info.applicationInfo.loadLabel(pm).toString();
  46. String[] permission= info.requestedPermissions;
  47. packagelist.add(packagename);
  48. map.put(packagename, permission);
  49. } else{
  50. String packagename=info.applicationInfo.loadLabel(pm).toString();
  51. String[] permission= info.requestedPermissions;
  52. systemApp.add(packagename);
  53. map.put(packagename, permission);
  54. }
  55. }*/
  56. packagelist.addAll(systemApp);
  57. getListView().setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, packagelist));
  58. getListView().setOnItemClickListener(new OnItemClickListener() {
  59. @Override
  60. public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
  61. // TODO Auto-generated method stub
  62. String[]permission=map.get(packagelist.get(position));
  63. StringBuilder sb=new StringBuilder();
  64. for (int i = 0; i < permission.length; i++) {
  65. sb.append("权限"+permission[i]+"\n");
  66. }
  67. Toast.makeText(getApplicationContext(), sb,Toast.LENGTH_LONG ).show();
  68. }
  69. });
  70. };
  71. }



原文:http://my.oschina.net/zhuzihasablog/blog/107694

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/609941
推荐阅读
相关标签
  

闽ICP备14008679号