您的位置:首页 > 其它

6.0权限动态适配(四)(存在问题)

2017-09-14 16:50 344 查看

功能

动态申请权限,支持Activity与Fragment,且拒绝后可判断并再次弹出对话框。

用法

引入

project’s build.gradle

buildscript {
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}


module’s build.gradle

apply plugin: 'com.neenbedankt.android-apt'

dependencies {
apt 'com.zhy:mpermission-compiler:1.0.0'
compile 'com.zhy:mpermission-api:1.0.0'
}


申请权限

MPermissions.requestPermissions(MainActivity.this, REQUEST_CODE_SDCARD, Manifest.permission.WRITE_EXTERNAL_STORAGE);


权限申请回调

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
MPermissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}


结果

成功方法通过注解@PermissionGrant标识

@PermissionGrant(REQUEST_CODE_SDCARD)
public void requestSdcardSuccess() {
Toast.makeText(this, "GRANT ACCESS SDCARD!" + " " + MPermissions.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_CODE_SDCARD), Toast.LENGTH_SHORT).show();
}


失败方法通过注解@PermissionDenied标识

@PermissionDenied(REQUEST_CODE_SDCARD)
public void requestSdcardFailed() {
Toast.makeText(this, "DENY ACCESS SDCARD!" + " " + MPermissions.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_CODE_SDCARD), Toast.LENGTH_SHORT).show();
}


若需解释,会自动执行使用@ShowRequestPermissionRationale注解的方法

if (!MPermissions.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUECT_CODE_SDCARD))
{
MPermissions.requestPermissions(MainActivity.this, REQUEST_CODE_SDCARD, Manifest.permission.WRITE_EXTERNAL_STORAGE);}


问题

小米4S真机测试,初次提示无论点击拒绝或同意,
MPermissions.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_CODE_SDCARD)
均返回
false

完整代码

https://github.com/snpmyn/PermissionDynamicTwo.git

原著

MyPermissions
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: