Is there a way to check for manifest permission from code?

前端 未结 2 1422
一向
一向 2020-12-29 06:22

How do I check for a specific permission in the manifest.xml from code? I want to throw some exception if some permissions that are necessay for my application are missing.

相关标签:
2条回答
  • 2020-12-29 07:03

    You can read the available <uses-permission> tags at runtime using the following. Tested on older Android versions AND Android 6 and 7

    PackageManager pm = getPackageManager();
    try
    {
        PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);
        String[] requestedPermissions = null;
        if (packageInfo != null) {
            requestedPermissions = packageInfo.requestedPermissions;
        }
    
        if (requestedPermissions != null && requestedPermissions.length > 0)
        {
            List<String> requestedPermissionsList = Arrays.asList(requestedPermissions);
            ArrayList<String> requestedPermissionsArrayList = new ArrayList<String>();
            requestedPermissionsArrayList.addAll(requestedPermissionsList);
    
            Log.i(ExConsts.TAG, ""+requestedPermissionsArrayList);
        }
    }
    catch (PackageManager.NameNotFoundException e)
    {
        e.printStackTrace();
    }
    
    0 讨论(0)
  • 2020-12-29 07:09

    You can check whether the permission is granted or not for specific permission by using PackageManager. For example

        PackageManager pm = getPackageManager();
        if (pm.checkPermission(permission.FINE_LOCATION, getPackageName()) == PackageManager.PERMISSION_GRANTED) {
            // do something
        } else {
            // do something
        }
    
    0 讨论(0)
提交回复
热议问题