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相关文章推荐
- 6.0权限动态适配(二)(存在问题)
- 6.0权限动态适配(一)(存在问题)
- 解决Android 6.0动态添加权限问题
- 解决Android 6.0以上的相机权限适配问题
- Android拍照存储文件报open failed: ENOENT (No such file or directory)(适配不同手机的方法)以及6.0动态权限
- 在android 6.0动态权限问题无法获取READ_PHONE_STATE权限的SecurityException的问题
- 6.0动态申请权限问题
- 百度地图定位6.0动态权限问题
- 关于Android 6.0权限的动态适配详解
- 关于小米6.0以上系统手机动态获取权限问题
- 安卓M 6.0动态权限的问题
- Android权限管理之RxPermission解决Android 6.0 适配问题
- Android 6.0动态权限适配
- 关于android6.0权限适配6.0系统以下的问题总结(二维码扫描)
- Android权限管理之RxPermission解决Android 6.0 适配问题
- Android 6.0动态权限申请问题
- Android 6.0(API 23)之后需动态申请权限的问题
- android 6.0动态权限问题
- Android权限管理之RxPermission解决Android 6.0 适配问题
- 解决 6.0 动态权限问题,支持 Rxjava、lambda