美文网首页
运行时权限

运行时权限

作者: 爱做梦的严重精神病患者 | 来源:发表于2018-09-26 15:15 被阅读0次

1.运行时权限

 以下权限需要进行运行时权限处理

权限组名 权限名
CALENDAR READ_CALENDAR
WRITE_CALENDAR
CAMERA CAMERA
CONTACTS READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
LOCATION ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
MICROPHONE RECORD_AUDIO
PHONE READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
SENSORS BODY_SENSORS
SMS SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS
STORAGE READ_EXTERNAL_STORAGE
WRITE_EXYERNAL_STORAGE

 以CALL_PHONE为例,进行运行时权限申请:

if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)
 != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.CALL_PHONE}, 1);
else{
XXXXXXXX
}

public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
switch (requestCode) {
      case 1:
              if (grantResults.length > 0 && grantResults[0] == packageManager.PERMISSION_GRANTED) {
                                        XXXXXXXXX;
                   }

          }
}

  第一步先要判断用户是不是已经授权了,借助的是ContextCompat.checkSelfPermission()方法。checkSelfPermission()方法接受两个参数,第一个参数是Context,第二个参数是具体的权限名。然后使用方法的返回值和PackageManager.PERMISSION_GRANTED做比较,相等就说明用户已经授权,不等就表示用户没有授权。
  如果没有授权的话,则需要调用ActivityCompat.requestPermissions()方法来向用户申请授权。requestPermission()方法接收3个参数,第一个参数要求是Activity的实例,第二个参数是一个string数组,用来放申请的权限名,第三个参数是请求码。
  之后,系统会弹出一个权限申请的对话框,然后用户同意或拒接权限申请。最后会回调onRequestPermissionResult()方法,授权的结果封装在grantResults参数中。

相关文章

  • Android - base - 运行时权限获取

    Android 6.0 引入的运行时权限机制 大纲 运行时权限机制简介 在程序运行时申请权限 #运行时权限机制简介...

  • 【Susen】目录

    Android运行时权限Android运行时权限列表EasyPermissionsAndPermissionPer...

  • 运行时权限

    1.运行时权限  以下权限需要进行运行时权限处理:  以CALL_PHONE为例,进行运行时权限申请:   第一步...

  • 无标题文章

    Android 6.0 运行时权限处理 标签(空格分隔): android 运行时权限介绍 Android 6.0...

  • 新特性与行为变更 -- 代码2

    运行时权限 运行时权限 在应用间共享文件 FileProvider 计划排定作业 JobIntentService...

  • Android优雅地申请动态权限

    Android6.0以上的系统中,引入了运行时权限检查,运行时权限分为正常权限和危险权限,当我们的App调用了需要...

  • Android 6.0变更一览

    Android 6.0 API 运行时权限 运行时申请权限,需要targetSDK>=23,并且手机的系统大于6....

  • 版本升级坑

    Android6.0 1.运行时权限 Android 6.0 运行时权限管理最佳实践:https://blog.c...

  • Android-6.0 棉花糖权限的那点事

    Android6.0引入了全新的权限管理方式,也就是运行时权限,至于什么是运行时权限,我们先看一下6.0以前的权限...

  • Android 6.0 运行时权限处理完全解析

    Android 6.0 运行时权限处理完全解析 运行时权限的变化及特点 对于6.0以下的权限及在安装的时候,根据权...

网友评论

      本文标题:运行时权限

      本文链接:https://www.haomeiwen.com/subject/cgndoftx.html