Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理Android运行时权限_Android_Android Permissions - Fatal编程技术网

处理Android运行时权限

处理Android运行时权限,android,android-permissions,Android,Android Permissions,在确保向后兼容性的同时,让应用程序不会在运行Android IceCreamSandwich或Gingerbread的设备上崩溃,为Android棉花糖提供处理运行时权限的最佳Android库是什么?您可以使用onRequestPermissionsResult处理运行时权限 @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResult

在确保向后兼容性的同时,让应用程序不会在运行Android IceCreamSandwich或Gingerbread的设备上崩溃,为Android棉花糖提供处理运行时权限的最佳Android库是什么?

您可以使用onRequestPermissionsResult处理运行时权限

 @Override
 public void onRequestPermissionsResult(int requestCode,
    String permissions[], int[] grantResults) {
switch (requestCode) {
    case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
        // If request is cancelled, the result arrays are empty.
        if (grantResults.length > 0
            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            // permission was granted, yay! Do the
            // contacts-related task you need to do.

        } else {

            // permission denied, boo! Disable the
            // functionality that depends on this permission.
        }
        return;
    }

    // other 'case' lines to check for other
    // permissions this app might request
}
}
更多细节

使用图书馆让生活变得非常轻松。以下是您如何请求许可并根据用户的响应采取行动:

mRequestObject = PermissionUtil.with(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).onAllGranted(
                new Func() {
                    @Override protected void call() {
                        //Happy Path
                    }
                }).onAnyDenied(
                new Func() {
                    @Override protected void call() {
                        //Sad Path
                    }
                }).ask(REQUEST_CODE_STORAGE);
并对活动的
onRequestPermissionsResult
调用此方法:

mRequestObject.onRequestPermissionsResult(requestCode, permissions, grantResults);

不要忘记将权限添加到清单中。

我不想只为了授予权限而编写这么多代码。有一些外部库,如Permiso和Nammu,它们有助于减少为处理运行时权限而编写的代码量。我想知道哪个外部库以最好的方式处理运行时权限您可以检查我创建的类并在片段中使用它它它是用于片段的,如果是用于请求单个权限的。