对低设备使用 android 6.0 api 23 权限(几乎像 api 22)

use android 6.0 api 23 permissions to low devices(like api 22 almost)

这是我的第一个问题,也许我会解释得有点糟糕,但没关系: 我有一个使用 api 22 库的项目,但使用 android 6.0(api 23) 编译,我想继续使用 api 22 库,但是当我 运行 我的项目使用 android 6.0 设备我有权限问题...

我的问题:有没有一种方法可以让您在 Android 5.1.1 中工作,并使用必要权限的方法使用 Android 6.0 进行编译?我的意思是,我可以添加一些库,以使用像 onRequestPermissionsResult(...) 这样的回调吗?我尝试将 api 23 库添加到我的项目中,但他的方法不起作用,任何建议...??

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是一个常量整数来标识这个请求。