动态权限申请总结

2017-10-18  本文已影响5人  海在路上

》》几个变量类型:

》》权限:Manifest.permission.READ_EXTERNAL_STORAGE(String);

》》 权限已申请和未申请:

①. 授予: PackageManager.PERMISSION_GRANTED

②. 拒绝: PackageManager.PERMISSION_DENIED

》》解释权限

// 解释权限

ActivityCompat.shouldShowRequestPermissionRationale(Activityactivity,Stringpermission)

判断是否有必要向用户解释为什么要这项权限。如果应用第一次请求过此权限,但是被用户拒绝了,则之后调用该方法将返回 true,此时就有必要向用户详细说明需要此权限的原因(个人认为此方法是可选的)。

PS: 如果应用第一次请求此权限时被用户拒绝,第二次再请求此权限时,用户勾选了权限请求对话框的“不再询问”,则此方法返回 false。如果设备规范禁止应用拥有该权限,此方法也返回 false。

》》权限判断是已授权还是已拒绝:

①.授予:PackageManager.PERMISSION_GRANTED

②.拒绝:PackageManager.PERMISSION_DENIED

ContextCompat.checkSelfPermission(context,Manifest.permission.READ_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED)

》》申请权限:

// 请求权限

ActivityCompat.requestPermissions(Activityactivity,String[]permissions,intrequestCode)

》》处理权限申请:

/**

* 处理权限请求结果

*

* @param requestCode

*          请求权限时传入的请求码,用于区别是哪一次请求的

*

* @param permissions

*          所请求的所有权限的数组

*

* @param grantResults

*          权限授予结果,和 permissions 数组参数中的权限一一对应,元素值为两种情况,如下:

*          授予: PackageManager.PERMISSION_GRANTED

*          拒绝: PackageManager.PERMISSION_DENIED

*/

@Override

public void onRequestPermissionsResult(int requestCode,Stringpermissions[],int[]grantResults) {

}

上一篇下一篇

猜你喜欢

热点阅读