zoukankan      html  css  js  c++  java
  • Android 6 检查权限代码

     1 private static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS= 0;
     2 
     3 //检查目前是否有权限
     4 if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
     5         != PackageManager.PERMISSION_GRANTED) {
     6 
     7     if (shouldShowRequestPermissionRationale(
     8             Manifest.permission.READ_CONTACTS)) {
     9         // 这里写一些向用户解释为什么我们需要读取联系人的提示得代码
    10     }
    11 
    12 //请求权限,系统会显示一个获取权限的提示对话框,当前应用不能配置和修改这个对话框
    13     requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
    14             MY_PERMISSIONS_REQUEST_READ_CONTACTS);
    15    
    16     return;
    17 }

    下面代码处理用户响应 

     1 @Override
     2 public void onRequestPermissionsResult(int requestCode,
     3         String permissions[], int[] grantResults) {
     4     switch (requestCode) {
     5         case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
     6             if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
     7                 // 授权成功
     8 
     9             } else {
    10                 // 授权失败
    11 
    12             }
    13             return;
    14         }
    15 
    16     }
    17 }

    shouldShowRequestPermissionRationale() 方法说明

    1. 第一次请求权限时,用户拒绝了,下一次:shouldShowRequestPermissionRationale() 返回 true,应该显示一些为什么需要这个权限的说明
    2.第二次请求权限时,用户拒绝了,并选择了“不在提醒”的选项时:shouldShowRequestPermissionRationale() 返回 false
    3. 设备的策略禁止当前应用获取这个权限的授权:shouldShowRequestPermissionRationale() 返回 false

  • 相关阅读:
    mvc session验证
    mvc登录验证
    PHP中return的用法
    mvc框架类
    php mvc实现比赛列表
    php MySQLDB类
    php header的几种用法
    php isset()与empty()的使用
    jenkins+springboot+svn linux 自动化部署
    基于netty的websocket例子
  • 原文地址:https://www.cnblogs.com/l2rf/p/5010738.html
Copyright © 2011-2022 走看看