Android 6 检查权限代码
2015-12-01 17:26
671 查看
private static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS= 0; //检查目前是否有权限 if (checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { if (shouldShowRequestPermissionRationale( Manifest.permission.READ_CONTACTS)) { // 这里写一些向用户解释为什么我们需要读取联系人的提示得代码 } //请求权限,系统会显示一个获取权限的提示对话框,当前应用不能配置和修改这个对话框 requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS); return; }
下面代码处理用户响应
@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 授权成功 } else { // 授权失败 } return; } } }
shouldShowRequestPermissionRationale() 方法说明
1. 第一次请求权限时,用户拒绝了,下一次:shouldShowRequestPermissionRationale() 返回 true,应该显示一些为什么需要这个权限的说明
2.第二次请求权限时,用户拒绝了,并选择了“不在提醒”的选项时:shouldShowRequestPermissionRationale() 返回 false
3. 设备的策略禁止当前应用获取这个权限的授权:shouldShowRequestPermissionRationale() 返回 false
相关文章推荐
- android genymotion教程之神坑
- Android使用AsyncTask与Thread的区别(再用new Thread要舵手!)
- Android应用安全防御措施
- android中hotpatch
- <Android>初识一:令人头疼的R文件缺失问题
- Android 4.1 设置Activity切换动画(XML)
- android Fragment的使用
- 014Activity生命周期
- android资源管理和使用资源 (2015.12.1)
- Android中关于android:layout_weight
- Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
- android 转到桌面
- Android SDK 开发范例大全 ---3.7简单的按钮事件
- 直接拿来用!最火的Android开源项目
- AndroidStudio 常用快捷键
- TextView设置MaxLength
- Android(14)Handler简单例子(1)
- android中Scroller类分析
- Android 4.0新控件 switch的属性
- Acivity的启动模式