我们常常会遇到一些问题,比如android6.0如何封装运行时的权限等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。
1.Android 6.0权限封装概述
Android 6.0以上的系统,对于应用程序的权限要求更加严格,应用程序在安装的时候只会授予一些必要的权限,其余的权限都需要在应用的运行时再次获取,这就需要开发者来封装运行时的权限获取,以满足应用程序的正常运行。
2.封装运行时权限的步骤
封装运行时权限的步骤如下:
1、在AndroidManifest.xml文件中声明需要申请的权限;
2、在应用程序中调用API来检测权限;
3、当权限没有被授予时,弹出权限申请对话框;
4、当用户点击允许授权时,调用API来申请权限;
5、当用户拒绝授权时,弹出提示框,提示用户去设置里手动授权;
6、当用户设置里授权后,再次调用API来检测权限;
7、当权限被授予后,继续应用程序的后续操作。
3.封装运行时权限实例
以下是一个封装运行时权限的实例代码:
// 封装运行时权限
public static void requestRuntimePermission(String[] permissions, PermissionListener listener){
mListener = listener;
List permissionList = new ArrayList();
for(String permission : permissions){
if(ContextCompat.checkSelfPermission(MyApplication.getContext(), permission) != PackageManager.PERMISSION_GRANTED){
permissionList.add(permission);
}
}
if(!permissionList.isEmpty()){
ActivityCompat.requestPermissions(MyApplication.getCurrentActivity(), permissionList.toArray(new String[permissionList.size()]), 1);
}else{
mListener.onGranted();
}
}
// 权限回调
public static void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if(mListener != null){
if(grantResults.length > 0){
List deniedPermissions = new ArrayList();
for(int i = 0; i
总结
以上就是为你整理的android6.0如何封装运行时的权限全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!