博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android6.0动态申请权限(简单实用)
阅读量:3977 次
发布时间:2019-05-24

本文共 4277 字,大约阅读时间需要 14 分钟。

简单代码:

public class LaunchActivity extends AppCompatActivity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_launch);        if (isGrantSDCardReadPermission()) {           //        } else {            requestPermission();        }    }    private boolean isGrantSDCardReadPermission() {        return PermissionUtils.isGrantSDCardReadPermission(this);    }    private void requestPermission() {        PermissionUtils.requestSDCardReadPermission(this, REQUEST_CODE_SDCARD_READ);    }    private static final int REQUEST_CODE_SDCARD_READ = 1;    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        switch (requestCode) {            case REQUEST_CODE_SDCARD_READ:                if (isGrantSDCardReadPermission()) {                    //                } else {                    Toast.makeText(this, "failure because without sd card read permission", Toast.LENGTH_SHORT).show();                }                break;            default:                break;        }    }}
public class PermissionUtils {    /**     * 是否有权限     *     * @param context     * @return     */    public static boolean checkSelfPermission(Context context, String permission) {        if (null == context) {            return false;        }        int per = ContextCompat.checkSelfPermission(context, permission);        return per == PackageManager.PERMISSION_GRANTED;    }    /**     * Check that all given permissions have been granted by verifying that each entry in the     * given array is of the value {@link PackageManager#PERMISSION_GRANTED}.     *     * @see Activity#onRequestPermissionsResult(int, String[], int[])     */    public static boolean verifyPermissions(int[] grantResults) {        // At least one result must be checked.        if (null == grantResults || grantResults.length < 1) {            return false;        }        // Verify that each required permission has been granted, otherwise return false.        for (int result : grantResults) {            if (result != PackageManager.PERMISSION_GRANTED) {                return false;            }        }        return true;    }    public static boolean isGrantSDCardReadPermission(Context context) {        return checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE);    }    public static void requestSDCardReadPermission(Activity activity, int requestCode) {        ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, requestCode);    }}

最后再附上需要动态申请的权限组,每组只要有一个权限申请成功,就默认组内其他权限申请成功了。

group:android.permission-group.CONTACTS    permission:android.permission.WRITE_CONTACTS    permission:android.permission.GET_ACCOUNTS        permission:android.permission.READ_CONTACTSgroup:android.permission-group.PHONE    permission:android.permission.READ_CALL_LOG    permission:android.permission.READ_PHONE_STATE     permission:android.permission.CALL_PHONE    permission:android.permission.WRITE_CALL_LOG    permission:android.permission.USE_SIP    permission:android.permission.PROCESS_OUTGOING_CALLS    permission:com.android.voicemail.permission.ADD_VOICEMAILgroup:android.permission-group.CALENDAR    permission:android.permission.READ_CALENDAR    permission:android.permission.WRITE_CALENDARgroup:android.permission-group.CAMERA    permission:android.permission.CAMERAgroup:android.permission-group.SENSORS    permission:android.permission.BODY_SENSORSgroup:android.permission-group.LOCATION    permission:android.permission.ACCESS_FINE_LOCATION    permission:android.permission.ACCESS_COARSE_LOCATIONgroup:android.permission-group.STORAGE    permission:android.permission.READ_EXTERNAL_STORAGE    permission:android.permission.WRITE_EXTERNAL_STORAGEgroup:android.permission-group.MICROPHONE    permission:android.permission.RECORD_AUDIOgroup:android.permission-group.SMS    permission:android.permission.READ_SMS    permission:android.permission.RECEIVE_WAP_PUSH    permission:android.permission.RECEIVE_MMS    permission:android.permission.RECEIVE_SMS    permission:android.permission.SEND_SMS    permission:android.permission.READ_CELL_BROADCASTS

 

转载地址:http://lorki.baihongyu.com/

你可能感兴趣的文章
conda创建python环境
查看>>
pytorch学习入门:什么是pytorch+安装
查看>>
机器学习中ground truth的解释
查看>>
使用朴素贝叶斯进行分本分类
查看>>
Python读写文件的方式
查看>>
K-近邻算法改进约会网站的配对效果
查看>>
快速排序算法及其优化方法
查看>>
VC++ string .........
查看>>
RoboCup2d 环境配置
查看>>
[转载]int,int32_t,int64_t
查看>>
LINUX 下 GDB 调试 ( 转载 )
查看>>
GDB 、 LINUX 下 GDB 调试 小结---->基础知识!
查看>>
Linux下静态库和动态库的创建和使用( 转载 )
查看>>
makefile:中文版最权威的makefile文档( 转载 )
查看>>
linux 编译警告:检测到时钟错误。您的创建可能是不完整的。
查看>>
Linux目录结构(Linux文件系统结构)( 转载 )
查看>>
ubuntu 必要软件 ( 转载 )
查看>>
linux sed 流编辑器的一些应用实例
查看>>
sed 流编辑器的特殊应用( 转载 )
查看>>
Linux 进程通信(System V) 第一节 ------> 管道 pipe
查看>>