PermissionsDispatcher库的使用(简单处理Android 6.0系统中的运行时权限的开源库)
来源:互联网 发布:mac 安装git 环境 编辑:程序博客网 时间:2024/05/21 15:46
PermissionsDispatcher使用
开源地址https://github.com/hotchemi/PermissionsDispatcher
一,添加依赖
- app:build.gralde
dependencies { compile('com.github.hotchemi:permissionsdispatcher:${latest.version}') { // if you don't use android.app.Fragment you can exclude support for them exclude module: "support-v13" } annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:${latest.version}'}
二,使用(以相机权限为例)
添加 AndroidManifest
<uses-permission android:name="android.permission.CAMERA" />
添加注释及使用
- 注:带注释的方法不能是私有的。
@RuntimePermissionspublic class MainActivity extends AppCompatActivity { @NeedsPermission(Manifest.permission.CAMERA) void showCamera() { getSupportFragmentManager().beginTransaction() .replace(R.id.sample_content_fragment, CameraPreviewFragment.newInstance()) .addToBackStack("camera") .commitAllowingStateLoss(); } @OnShowRationale(Manifest.permission.CAMERA) void showRationaleForCamera(final PermissionRequest request) { new AlertDialog.Builder(this) .setMessage(R.string.permission_camera_rationale) .setPositiveButton(R.string.button_allow, (dialog, button) -> request.proceed()) .setNegativeButton(R.string.button_deny, (dialog, button) -> request.cancel()) .show(); } @OnPermissionDenied(Manifest.permission.CAMERA) void showDeniedForCamera() { Toast.makeText(this, R.string.permission_camera_denied, Toast.LENGTH_SHORT).show(); } @OnNeverAskAgain(Manifest.permission.CAMERA) void showNeverAskForCamera() { Toast.makeText(this, R.string.permission_camera_neverask, Toast.LENGTH_SHORT).show(); }}
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button_camera).setOnClickListener(v -> { // NOTE: delegate the permission handling to generated method MainActivityPermissionsDispatcher.showCameraWithCheck(this); });}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // NOTE: delegate the permission handling to generated method MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);}
三,危险权限和权限组列表
android中文官方文档https://developer.android.google.cn/guide/topics/security/permissions.html#defining
WRITE_CALENDAR CAMERA CAMERA CONTACTS READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS LOCATION ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION MICROPHONE RECORD_AUDIO PHONE READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS SENSORS BODY_SENSORS SMS SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMS STORAGE READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
阅读全文
0 0
- PermissionsDispatcher库的使用(简单处理Android 6.0系统中的运行时权限的开源库)
- android开发 权限适配6.0 permissionsdispatcher的安装使用
- Android 6.0 运行时权限 easypermissions,permissionsdispatcher ,rxpermissions 三种不同方案的实现
- Android中的运行时权限处理,最简单的方法。
- Android 运行时权限获取-PermissionsDispatcher
- 目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
- 目前最流行的运行时权限请求框架PermissionsDispatcher、RxPermissions和easypermissions的使用和对比
- Android系统权限(含6.0的运行时权限)
- Android 6.0 运行时权限的处理
- PermissionsDispatcher的使用
- PermissionsDispatcher的使用
- Android 6.0 运行时权限简单处理
- Android 6.0 运行时权限简单处理
- Android6.0权限申请框架的permissionsdispatcher的基本使用
- 利用PermissionsDispatcher解决运行时权限异常
- 使用PermissionsDispatcher轻松解决Android权限问题
- 6.0以上手机运行时权限第三方PermissionsDispatcher的使用
- 6.0以上手机运行时权限第三方PermissionsDispatcher的使用
- test
- 程序员面试金典——回文链表
- [攻克存储] 掌握SDRAM/DDR的结构与寻址
- c++string函数详解
- 时间戳
- PermissionsDispatcher库的使用(简单处理Android 6.0系统中的运行时权限的开源库)
- 查询数据展示案例 菜鸟级别的我
- java多线程例子
- Linux服务器中SVN版本库的创建与配置
- Springboot 之 静态资源路径配置
- oracle时间函数,new_day()
- 用netlink API与内核通信
- spring集成quartz定时任务(注解实现)
- VB .NET把Excel中的数据导入SQL SERVER数据库