男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述Android APP启动页面动态加载全部权限相关的知识,希望能为你提供帮助。
一、写在前面
6.0以上动态加载权限加载的是,需要用户手动赋予的权限( Dangerous Permissions),只有这些,其他权限不用加载
所属权限组 权限
日历 READ_CALENDAR
日历 WRITE_CALENDAR
相机 CAMERA
联系人 READ_CONTACTS
联系人 WRITE_CONTACTS
联系人 GET_ACCOUNTS
位置 ACCESS_FINE_LOCATION
位置 ACCESS_COARSE_LOCATION
麦克风 RECORD_AUDIO
电话 READ_PHONE_STATE
电话 CALL_PHONE
电话 READ_CALL_LOG
电话 WRITE_CALL_LOG
电话 ADD_VOICEMAIL
电话 USE_SIP
电话 PROCESS_OUTGOING_CALLS
传感器 BODY_SENSORS
短信 SEND_SMS
短信 RECEIVE_SMS
短信 READ_SMS
短信 RECEIVE_WAP_PUSH
短信 RECEIVE_MMS
存储 READ_EXTERNAL_STORAGE
存储 WRITE_EXTERNAL_STORAGE
二、使用的框架RxPermissions2
build.gradle文件中
在dependencies {}中添加依赖
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1‘
compile ‘io.reactivex.rxjava2:rxjava:2.0.1‘
compile ‘com.tbruyelle.rxpermissions2:rxpermissions:[email protected]‘
三、关键代码
1 /** 2* 权限列表 3*/ 4 String[] permissions = new String[]{ 5Manifest.permission.CAMERA, 6Manifest.permission.READ_PHONE_STATE, 7Manifest.permission.WRITE_EXTERNAL_STORAGE, 8Manifest.permission.READ_EXTERNAL_STORAGE 9 }; 10 11 /** 12* 请求权限 13*/ 14 private void requestPermissions() { 15RxPermissions rxPermission = new RxPermissions(this); 16rxPermission 17.request(permissions)//多个权限用","隔开 18.subscribe(granted -> { 19if (granted) { 20//获得了所有权限 21textView.setAnimation(animationSet); 22} else { 23//至少有一个权限没有获得 24Toast.makeText(SplashActivity.this,"请给应用赋予全部权限,否则无法使用",Toast.LENGTH_SHORT).show(); 25finish(); 26} 27}); 28 29 }
四、该框架升级比较快,网上很多写这个框架的博文都并不实用,还是要注意其github网站说明文档
【Android APP启动页面动态加载全部权限】地址:https://github.com/tbruyelle/RxPermissions
推荐阅读
- SpringMVC笔记- 不配置HandlerMapping
- Spring的配置文件ApplicationContext.xml配置头文件解析
- spring配置文件头部配置解析(applicationContext.xml)
- Unity之SDK接入(Unity与Android通信)
- 在elasticsearch中建立index,并添加type定义mapping
- Android笔记---点击事件的四种写法
- Android中图片的三级缓存策略
- APP的社群如何快速创建
- 《精通android网络开发》--HTTP数据通信