搜索
热搜: 活动 交友 discuz
查看: 4291|回复: 0
打印 上一主题 下一主题

自己封装的android 6.0权限授权

[复制链接]

160

主题

165

帖子

814

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
814
跳转到指定楼层
楼主
发表于 2016-10-26 10:36:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
安卓6.0有些危险权限需要使用的时候用户授权 这个大家应该都知道 这里把这个授权操作封装一个activity基类 需要授权的集成这个类就可以了 减少很多代码

  1. package com.hh85.mamaquan;

  2. import android.content.pm.PackageManager;
  3. import android.os.Build;
  4. import android.os.Bundle;
  5. import android.support.annotation.NonNull;
  6. import android.support.annotation.Nullable;
  7. import android.support.v4.app.ActivityCompat;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.widget.Toast;

  10. /**
  11. * Created by tangyunfei on 2016/8/21.
  12. */

  13. public class BaseActivity extends AppCompatActivity {

  14.     private int RQUEST_PERMISSION_CODE = 0;
  15.     @Override
  16.     protected void onCreate(@Nullable Bundle savedInstanceState) {
  17.         super.onCreate(savedInstanceState);
  18.     }

  19.     /**
  20.      * 获取权限
  21.      */
  22.     protected void getPermissions(String permission,int RQUEST_PERMISSION_CODE){
  23.         this.RQUEST_PERMISSION_CODE = RQUEST_PERMISSION_CODE;
  24.         ActivityCompat.requestPermissions(this,new String[]{permission},RQUEST_PERMISSION_CODE);

  25.     }

  26.     /**
  27.      * 检查权限是否授权
  28.      * @return
  29.      */
  30.     protected boolean checkPermissions(String permission){
  31.         if (Build.VERSION.SDK_INT>=23){
  32.             if(ActivityCompat.checkSelfPermission(this,permission)== PackageManager.PERMISSION_GRANTED){
  33.                 return true;
  34.             }else{
  35.                 return false;
  36.             }
  37.         }else{
  38.             return true;
  39.         }

  40.     }
  41.     //验证权限用户是否允许授权
  42.     private static boolean verifyPermissions(int[] grantResults) {
  43.         // At least one result must be checked.
  44.         if(grantResults.length < 1){
  45.             return false;
  46.         }

  47.         // Verify that each required permission has been granted, otherwise return false.
  48.         for (int result : grantResults) {
  49.             if (result != PackageManager.PERMISSION_GRANTED) {
  50.                 return false;
  51.             }
  52.         }
  53.         return true;
  54.     }
  55.     @Override
  56.     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  57.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  58.         if(requestCode == RQUEST_PERMISSION_CODE){
  59.             if(verifyPermissions(grantResults)){
  60.                 permissionSuccess(RQUEST_PERMISSION_CODE);
  61.                 Toast.makeText(getBaseContext(),"授权成功",Toast.LENGTH_SHORT).show();
  62.             }else{
  63.                 permissionError(RQUEST_PERMISSION_CODE);
  64.                 Toast.makeText(getBaseContext(),"您禁用了授权",Toast.LENGTH_SHORT).show();
  65.             }
  66.         }
  67.     }

  68.     /**
  69.      * 用户允许授权
  70.      */
  71.     protected void permissionSuccess(int RQUEST_PERMISSION_CODE){

  72.     }
  73.     /**
  74.      * 用户不允许授权
  75.      */
  76.     protected void permissionError(int RQUEST_PERMISSION_CODE){

  77.     }
  78. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|安卓论坛  

GMT+8, 2024-5-18 12:17 , Processed in 0.058116 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Design S!|ƽ̶

快速回复 返回顶部 返回列表