Android权限处理——第三方库easypermissions使用
来源:互联网 发布:知乎注册在哪里 编辑:程序博客网 时间:2024/06/05 11:04
easypermissions地址
https://github.com/googlesamples/easypermissions
安装
easypermissions通过在你的build.gradle添加以下依赖安装
compile 'pub.devrel:easypermissions:0.4.2'
用法
为了使用EasyPermissions,在你的Activity (or Fragment)重写onRequestPermissionsResult方法
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // Forward results to EasyPermissions EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); }}
请求权限
下面的示例显示如何请求权限,需要相机和access_fine_location权限。有几件事需要注意:
- 使用easypermissions #hasPermissions(…)来检查应用程序是否已经具有所需的权限。此方法可以以任意数量的权限作为最终参数。
- 用EasyPermissions#requestPermissions来请求权限,此方法将请求系统权限,并显示必要时提供的理由字符串。提供的请求代码应该是这个请求唯一的,且该方法可以以任意数量的权限作为最终参数。
- 使用AfterPermissionGranted。这是可选的,但使用简便。如果请求的权限全部被授权,相应请求码下的方法都将被执行。这是为了简化需要运行请求方法的公共流程。这也可以通过添加在onpermissions授予回调的逻辑来实现。
最后,为了更好的控制,使你的Activity / Fragment实现PermissionCallbacks接口
public class MainActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // Forward results to EasyPermissions EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } @Override public void onPermissionsGranted(int requestCode, List<String> list) { // Some permissions have been granted // ... } @Override public void onPermissionsDenied(int requestCode, List<String> list) { // Some permissions have been denied // ... }}
必须的权限
在某些情况下,如果没有某些权限,应用程序将无法正常运行。如果用户用“永远不要再问”选项否认这些权限,您将无法从用户请求这些权限,并且必须在应用程序设置中更改这些权限。在这种情况下,你可以使用EasyPermissions.somePermissionPermanentlyDenied(…) 来显示一个对话框,让用户直接跳转到系统设置
@Overridepublic void onPermissionsDenied(int requestCode, List<String> perms) { Log.d(TAG, "onPermissionsDenied:" + requestCode + ":" + perms.size()); // (Optional) Check whether the user denied any permissions and checked "NEVER ASK AGAIN." // This will display a dialog directing them to enable the permission in app settings. if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { new AppSettingsDialog.Builder(this).build().show(); }}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE) { // Do something after user returned from app settings screen, like showing a Toast. Toast.makeText(this, R.string.returned_from_app_settings_to_activity, Toast.LENGTH_SHORT) .show(); }}
阅读全文
0 0
- Android权限处理——第三方库easypermissions使用
- Android处理6.0获取权限问题的第三方框架------开源项目-Easypermissions
- Android EasyPermissions官方库,高效处理权限
- Android动态权限,EasyPermissions 介绍及使用
- Android 6.0+ 运行时权限——EasyPermissions源码解析
- Android 权限检查EasyPermissions
- Android 6.0动态权限框架EasyPermissions的使用
- Android—第三方登录—界面跳转细节处理
- Android 6.0运行时权限第三方库的使用-----AndPermission
- Android第三方库——Toasty
- Android第三方库——FlowLayout
- Android6.0运行时权限处理(项目中使用到的一种形式,没有使用第三方库)
- Android 6.0运行时权限的申请使用及EasyPermissions的使用
- Android 6.0运行时权限的申请使用及EasyPermissions的使用
- 安卓学习笔记--- Android 6.0运行时权限的申请使用及EasyPermissions的使用
- Android 6.0多个权限申请,教你使用Google easypermissions框架,100%申请成功
- Android第三方控件——百度地图的使用
- Android使用第三方SDK——百度地图
- oracle PL-SQL块与深入例子
- 从Android到React Native开发(二、通信与模块实现)
- android adb install 安装常见错误列表
- 【Java多线程】概述
- Android触摸事件传递机制
- Android权限处理——第三方库easypermissions使用
- jdk Atomic包
- 从Android到React Native开发(三、自定义原生控件支持)
- SOLID编程原则-简述
- iOS10 11跳转系统设置等的URL收集
- Activity跳转到指定Fragment实例
- 内存空间分几部分:代码段、数据段,栈,堆 (收集整理)
- ACM总结报告
- 近期关于CI/CD策略以及git分支模型的思考