android动态权限工具类
来源:互联网 发布:脱口秀大会 知乎 编辑:程序博客网 时间:2024/05/18 19:19
最近自己前几文章中封装了个动态权限工具类,不过我看了下环信源码,好像比我写的好。集成了我本身的 提示和跳转权限的功能
1.检测权限及其回答
2.拒绝后的dialog提示
3.再次访问拒绝跳转到系统的权限设置
方便用户直接跳转的权限 使用的时候3个java文件直接丢到自己项目中去,然后注意修改一下import就行
//使用方式
PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(this, permission, new PermissionsResultAction() { @Override public void onGranted() { //确定权限已到位 开始执行需要执行的方法 } @Override public void onDenied(String permission) { //给个简单的dialog提示拒绝会导致什么无法使用 AlertDialog dialog = new AlertDialog.Builder(BaseActivity.this) .setMessage("该功能需要赋予访问存储的权限,不开启将无法正常工作!") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { getAppDetailSettingIntent(BaseActivity.this);//直接跳转到该app的权限设置界面 方便用户操作 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).create(); dialog.show(); } }); @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); //用户接收或者拒绝后 刷新 PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults); } /** * 直接跳转到该app的权限设置界面 方便用户操作 */ public void getAppDetailSettingIntent(Context context) { // vivo 点击设置图标>加速白名单>我的app // 点击软件管理>软件管理权限>软件>我的app>信任该软件 Intent appIntent = context.getPackageManager().getLaunchIntentForPackage("com.iqoo.secure"); if (appIntent != null) { context.startActivity(appIntent);// floatingView = new SettingFloatingView(this, "SETTING", getApplication(), 0);// floatingView.createFloatingView(); return; } // oppo 点击设置图标>应用权限管理>按应用程序管理>我的app>我信任该应用 // 点击权限隐私>自启动管理>我的app appIntent = context.getPackageManager().getLaunchIntentForPackage("com.oppo.safe"); if (appIntent != null) { context.startActivity(appIntent);// floatingView = new SettingFloatingView(this, "SETTING", getApplication(), 1);// floatingView.createFloatingView(); return; } Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= 9) { intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); intent.setData(Uri.fromParts("package", getPackageName(), null)); } else if (Build.VERSION.SDK_INT <= 8) { intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); intent.putExtra("com.android.settings.ApplicationPkgName", getPackageName()); } startActivity(intent); }
动态权限工具类下载
阅读全文
1 0
- android动态权限工具类
- Android动态申请权限工具类
- android6.0动态权限申请工具类
- 动态获取权限工具类及其使用
- android 权限请求工具类
- Android 权限检查工具类
- Android权限动态管理工具类
- Android工具类-权限工具类
- android 6.0 权限请求工具类
- Android运行时权限工具类
- Android 6.0常用权限获取工具类
- Android权限扫描工具
- android 6.0动态权限管理类
- android 6.0 动态权限申请帮助类
- Android-动态权限-解决方案
- Android 6.0动态权限
- android 动态申请权限
- Android动态权限
- 《Python算法教程_中文版》pdf
- Old Problem [带修改的kth]
- 关联式容器
- TCP/UDP保护消息边界
- 登陆网络请求的Retrofit实现【新手】
- android动态权限工具类
- python:浅析python 中__name__ = '__main__' 的作用
- 《Web渗透技术及实战案例解析》pdf
- wifi display
- LeetCode 438. Find All Anagrams in a String
- poj1035
- 描述统计学基础
- xsy1025 link-cut-tree+线段树
- SpringMVC学习笔记(四):地址映射RequestMapping