使用android 6.0 api 23权限到低端设备(比如api 22差不多)

时间:2016-06-27 01:42:21

标签: android android-6.0-marshmallow android-permissions android-library

这是我在这里的第一个问题,也许我会解释一点不好,但好看看: 我有一个使用api 22库的项目,但是编译了android 6.0(api 23),我想继续使用api 22库,但是当我用android 6.0设备运行我的项目时,我的权限有问题... < / p>

我的问题:有没有办法可以使用Android 5.1.1,并使用必要的权限方法使用Android 6.0进行编译?我的意思是,我可以添加一些库,以便使用onRequestPermissionsResult(...)之类的回调吗?我尝试将api 23库添加到我的项目中但是没有使用他的方法,任何建议...... ??

1 个答案:

答案 0 :(得分:0)

1。如果您需要的许可是this page的危险许可,请查看。

2.列出String数组中所需的所有危险权限,如下所示。

private static final String[] REQUIRED_PERMISSIONS = new String[]{your_permissions_here};

3。将以下代码添加到onCreate()。

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    LinkedList<String> missingPermissions = new LinkedList<>();
    for(String p : REQUIRED_PERMISSIONS){
        if(checkSelfPermission(p) != PackageManager.PERMISSION_GRANTED){
            missingPermissions.add(p);
        }
    }
    if(!missingPermissions.isEmpty()){
        String[] mpArray = new String[missingPermissions.size()];
        missingPermissions.toArray(mpArray);
        requestPermissions(mpArray, REQUEST_PERMISSIONS);
    }
}

REQUEST_PERMISSIONS是一个常量整数,用于标识此请求。