如何在代码中查找需要权限的所有部分

时间:2016-09-06 10:56:41

标签: android android-studio android-permissions

我有一个大型项目,其中包含许多需要权限的功能。问题是一年前启动此项目的开发人员,只是向清单添加了所有可能的权限。现在问题是我需要删除从未使用过的所有权限。有没有一个很好的方法或工具呢?

我想到的方法是删除所有权限,然后测试,并在看到使用SECURITY EXCEPTION崩溃后逐个添加。堆栈跟踪还包含缺少权限的提示。我认为这不是一个好的或安全的方法......

我尝试了这里解释的方法:How to check if Android Permission is actually being used?  但它只做了部分工作。我删除了所有权限并运行检查,但未找到所有权限。我在我的代码中使用蓝牙,并且没有注意到这个权限丢失......

1 个答案:

答案 0 :(得分:0)

在我的猜测中首先看看Dangerous permission list从清单文件中识别您的权限以及这个library中列表中的所有这些权限,他们以与处理它相同的方式执行此操作所有权限一个接一个地看一下示例

askCompactPermissions(new String[]{PermissionUtils.Manifest_CAMERA, PermissionUtils.Manifest_WRITE_EXTERNAL_STORAGE}, new PermissionResult() {
        @Override
        public void permissionGranted() {
            //permission granted
            //replace with your action
        }

        @Override
        public void permissionDenied() {
            //permission denied
            //replace with your action
        }
         @Override
                public void permissionForeverDenied() {
                 // user has check 'never ask again'
                 // you need to open setting manually
                 //  Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                 //  Uri uri = Uri.fromParts("package", getPackageName(),  
                  null);
                 //   intent.setData(uri);
                 //  startActivityForResult(intent,   
                 REQUEST_PERMISSION_SETTING); 
                }
    });

对于活动范围来自ActivityManagePermission的yourActivityClass,如下所示

public class MainActivity extends ActivityManagePermission {

}

并且Fragement从FragmentManagePermission扩展yourFragmentClass

public class FragmentHome extends FragmentManagePermission {

}