Android 6.0(API 23)及以上动态申请权限
838 字
4 分钟
Android 6.0(API 23)及以上动态申请权限

0x00 权限组
| 所属权限组 | 权限 |
|---|---|
| 日历 | READ_CALENDAR |
| 日历 | WRITE_CALENDAR |
| 相机 | CAMERA |
| 联系人 | READ_CONTACTS |
| 联系人 | WRITE_CONTACTS |
| 联系人 | GET_ACCOUNTS |
| 位置 | ACCESS_FINE_LOCATION |
| 位置 | ACCESS_COARSE_LOCATION |
| 麦克风 | RECORD_AUDIO |
| 电话 | READ_PHONE_STATE |
| 电话 | CALL_PHONE |
| 电话 | READ_CALL_LOG |
| 电话 | WRITE_CALL_LOG |
| 电话 | ADD_VOICEMAIL |
| 电话 | USE_SIP |
| 电话 | PROCESS_OUTGOING_CALLS |
| 传感器 | BODY_SENSORS |
| 短信 | SEND_SMS |
| 短信 | RECEIVE_SMS |
| 短信 | READ_SMS |
| 短信 | RECEIVE_WAP_PUSH |
| 短信 | RECEIVE_MMS |
| 存储 | READ_EXTERNAL_STORAGE |
| 存储 | WRITE_EXTERNAL_STORAGE |
0x01 动态申请权限方法
public void requestPower() { //判断是否已经赋予权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.上表权限字符) != PackageManager.PERMISSION_GRANTED) { //如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.上表权限字符)) {//这里可以写个对话框之类的项向用户解释为什么要申请权限,并在对话框的确认键后续再次申请权限 } else { //申请权限,字符串数组内是一个或多个要申请的权限,1是申请权限结果的返回参数,在onRequestPermissionsResult可以得知申请结果 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.上表权限字符,}, 1); } } }注意,因为判断语句,其实实际上当用户拒绝一次权限申请后,再次调用方法,不会再出现申请权限对话框。而如果不把权限写在数组里,而是每条权限放在一个多个以下方法里一起调用,实际上,每次一起调用这多个方法,实际只申请这些方法的一条权限。
0x02 判断权限申请结果
判断权限申请结果的方法(在权限申请对话框消失后执行)
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) { for (int i = 0; i < permissions.length; i++) { if (grantResults[i] == PERMISSION_GRANTED) { Toast.makeText(this, "" + "权限" + permissions[i] + "申请成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "" + "权限" + permissions[i] + "申请失败", Toast.LENGTH_SHORT).show(); } } } }当系统要求用户授予权限时,用户可以选择指示系统不再要求提供该权限。这种情况下,无论应用在什么时候使用 requestPermissions() 再次要求该权限,系统都会立即拒绝此请求。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
Android自带抽屉布局及NavigationView的使用
Android笔记2018-02-14
2
Android Dialog回传
Java/Android代码2018-06-21
3
Android: runOnUiThread
Android笔记2018-03-14
4
Android隐藏标题栏代码失效
Android笔记2017-11-03
5
OkHttp封装
Java/Android代码2018-06-21
随机文章随机推荐















加载更多…