Android之权限处理

自从从Android6.0以后,个人安全隐私越来越重视,用户对客户端的授权必须收到用户授权。这个Android6.0以后保留一些之前的一些权限方法,保留一些清单文件的权限。唯独更改的是那些及其重要的用户权限。


如下为例子:

不是及其重要的权限:只需在AndroidManifest清单文件

静态权限:

<uses-permission android:name="android.permission.INTERNET" />

重要权限:需要在AndroidManifest清单文件 还需要的代码里面动态申请权限

动态权限:

 <uses-permission android:name="android.permission.INTERNET" />

权限函数:

 /**
     * Request permission
     *
     * @param permissions
     */
    public void requestPermissions(String... permissions) {
        if (Build.VERSION.SDK_INT >= 23) {
            List<String> list = new ArrayList<>();
            for (int i = 0; i < permissions.length; i++) {
                if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
                    list.add(permissions[i]);
                    if (ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])) {
                        showToast("没有开启权限将会导致部分功能不可使用");
                    }
                }
            }
            ActivityCompat.requestPermissions(this, list.toArray(new String[permissions.length]), 0);
        }
    }

调用方法:

 if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(android.Manifest.permission.ACCESS_COARSE_LOCATION);
        }

猜你喜欢

转载自blog.csdn.net/weixin_39460667/article/details/81432990