Android权限申请方法类

Android6.0之后对敏感权限进行了控制,即只有用户确认后才能够拥有权限,在AndroidManifest中声明还不够。
以下是在实际开发中写的关于权限确认的方法类。

package com.android.jierijt.tools;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class Permission {
    private static final int MY_PERMISSIONS_REQUEST_CALL_PHONE = 1;
    private static final int MY_PERMISSIONS_REQUEST_CALL_CAMERA = 2;





    static String[] permissions = new String[]{
            Manifest.permission.CAMERA,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.ACCESS_FINE_LOCATION
    };

    public static void  checkPermissionGroup(Activity  activity){
        List<String> mPermissionList=new ArrayList<>();
        for (int i = 0; i < permissions.length; i++) {
        if (ContextCompat.checkSelfPermission(activity, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
            mPermissionList.add(permissions[i]);
        }
    }
                if (mPermissionList.isEmpty()) {//未授予的权限为空,表示都授予了
        Toast.makeText(activity,"已经授权", Toast.LENGTH_LONG).show();
    } else {//请求权限方法
        String[] permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组
        ActivityCompat.requestPermissions(activity, permissions, MY_PERMISSIONS_REQUEST_CALL_CAMERA);

    }
    }
    public static void  checkPermission(Activity  activity,String tagPermission){
            if (ContextCompat.checkSelfPermission(activity, tagPermission) != PackageManager.PERMISSION_GRANTED) {
                //没有授予权限
                ActivityCompat.requestPermissions(activity, new String[]{tagPermission}, MY_PERMISSIONS_REQUEST_CALL_CAMERA);
            }


    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • Android系统权限 Android 是一个权限分隔的操作系统,其中每个应用都有其独特的系统标识(Linux 用...
    ZHLeo阅读 12,135评论 3 16
  • Android系统在MarshMallow之前,权限都是在安装的时候授予的,虽然在4.3时,Google就试图在源...
    看书的小蜗牛阅读 17,966评论 7 47
  • 这个城市三面环山,站在东西任何一个高点均可纵观整个城市!城市中央有条河,原本是自然形成的一条小河,后被人工改造...
    沦汀战士阅读 1,358评论 0 1
  • 好久没有看过这么蓝的天。 原来,当自己不认真做一件事情的时候,内心是不踏实的。 逃避,也只是暂时的。 在家,好好吃...
    减肥的女孩阅读 4,003评论 0 1