Android 权限动态申请

原创 2018年04月15日 11:55:34

Android 6以后,权限需要动态申请,以下 是整理的动态申请权限的工具类,Android 7.0亲测可用,转载请载明出处:https://blog.csdn.net/sdbzmyh0/article/details/79947971

import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.content.ContextCompat;

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

/**
 * Created by Administrator on 2018-03-16.
 */
public class PermissionUtil {
    //private String[] permissions={Manifest.permission.RECORD_AUDIO,Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE};
    public static boolean CheckPermission(Activity activity, Context context, String PermissionRequest){
        int permission=-1;
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            permission = ContextCompat.checkSelfPermission(context, PermissionRequest);
            if (permission != PackageManager.PERMISSION_GRANTED) {
                activity.requestPermissions(new String[]{PermissionRequest}, 1);
            }
        }
        else {
            permission= PackageManager.PERMISSION_GRANTED;
        }
        return permission== PackageManager.PERMISSION_GRANTED;
    }
    public static boolean CheckPermissions(Activity activity, Context context, String[] PermissionRequests){
        boolean PermissionRequest=true;
        int permission=-1;
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            for(int i=0;i<PermissionRequests.length;i++) {
                permission = ContextCompat.checkSelfPermission(context, PermissionRequests[i]);
                if (permission != PackageManager.PERMISSION_GRANTED) {
                    PermissionRequest=false;
                    break;
                }
            }
        }
        return PermissionRequest;
    }
    public static void RequestPermission(Activity activity, Context context, String... PermissionRequest){
        int permission=-1;

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            List<String> listPermissions = new ArrayList<>();

            for (int i = 0; i < PermissionRequest.length; i++) {
                permission = ContextCompat.checkSelfPermission(context, PermissionRequest[i]);
                if (permission != PackageManager.PERMISSION_GRANTED) {
                    listPermissions.add(PermissionRequest[i]);
                }
            }
            String[] stringsPermissions=new String[listPermissions.size()];
            stringsPermissions=listPermissions.toArray(new String[listPermissions.size()]);
            if(stringsPermissions.length>0){
                activity.requestPermissions(stringsPermissions,1);
            }
        }
    }
}

Android 6.0(API 23)及其以上动态申请的权限与申请权限的方法

Android 6.0 api23及其以上动态申请权限与申请权限的方法
  • htwhtw123
  • htwhtw123
  • 2017-07-24 17:15:40
  • 4511

android 6.0权限动态申请

android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响。惊讶的是android社区鲜有谈论这...
  • changlei_shennan
  • changlei_shennan
  • 2016-04-23 10:58:31
  • 2997

Android 6.0动态权限申请

从安卓6.0开始,有部分危险权限申请需要在运行时候申请,一般是你的目标版本targetSdkVersion大于或等于23就要动态申请权限了,否则APP在运行当中会崩溃。...
  • loongago
  • loongago
  • 2016-12-29 18:38:30
  • 1506

【android 6.0 动态申请权限的基本方法和框架使用】

基本的使用: 先提供一下goog官方的学习文档: 权限最佳做法 在运行时请求权限 int selfPermission = ContextCompat.checkSelfPermissi...
  • da_caoyuan
  • da_caoyuan
  • 2017-06-01 13:00:20
  • 2468

Android 6.0 动态权限申请简单简洁优雅的处理方式

Android M 或以上的设备,在使用涉及隐私的安全权限时,需要动态申请,虽然不难,但写下来代码工作量也不少,而且几乎每个应用都需要用到。所以一直在探索一个要足够简单简洁优雅的处理方式,强迫症的精神...
  • lin_dianwei
  • lin_dianwei
  • 2018-01-10 17:12:11
  • 1940

Android6.0:动态权限申请

EasyPermissions这个是google提供的,github 地址:EasyPermissions 效果图:gradledependencies { ... compile '...
  • ss1168805219
  • ss1168805219
  • 2016-12-01 20:18:22
  • 2262

Android 动态申请权限

open failed: EACCES (Permission denied),无法读取文件,动态申请权限
  • zhaokx3
  • zhaokx3
  • 2016-11-07 14:38:28
  • 2762

Android动态权限申请

Android6.0需要动态申请权限,并且申请的时候requestPermissions需要传入Activity做参数。...
  • qq_25184739
  • qq_25184739
  • 2017-04-28 21:41:37
  • 644

安卓动态申请拍照权限,记录一下

if (ContextCompat.checkSelfPermission(AddImgActivity.this, Manifest.permission.CAMERA) != PackageMan...
  • xk8671598
  • xk8671598
  • 2017-05-31 15:29:45
  • 523

Android 6.0以上 动态权限申请

*如果一个组里的任意一个权限被允许了,这个组里的其它权限将被自动允许 个人Demo,还不完善: // 要申请的权限 private String...
  • u011125077
  • u011125077
  • 2016-12-26 19:17:18
  • 874
收藏助手
不良信息举报
您举报文章:Android 权限动态申请
举报原因:
原因补充:

(最多只允许输入30个字)