2016-9-12
来源:互联网 发布:js 遍历数组 编辑:程序博客网 时间:2024/05/16 17:59
2016-9-12
1.android 6.0运行时权限
1.需要设置targetSdkVersion>=23时, 才会使用此功能, 如果设置targetSdkVersion<=22即使手机是6.0的系统也仍是采用旧的权限管理策略2.6.0中把权限分成两类: 一. 不涉及用户隐私的普通权限,需要的AndroidManifest.xml声明,使用的是旧的权限管理策略,如:网络 蓝牙等 参考地址:https://developer.android.com/guide/topics/security/normal-permissions.html ACCESS_LOCATION_EXTRA_COMMANDS ACCESS_NETWORK_STATE ACCESS_NOTIFICATION_POLICY ACCESS_WIFI_STATE BLUETOOTH BLUETOOTH_ADMIN BROADCAST_STICKY CHANGE_NETWORK_STATE CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_STATE DISABLE_KEYGUARD EXPAND_STATUS_BAR GET_PACKAGE_SIZE INSTALL_SHORTCUT INTERNET KILL_BACKGROUND_PROCESSES MODIFY_AUDIO_SETTINGS NFC READ_SYNC_SETTINGS READ_SYNC_STATS RECEIVE_BOOT_COMPLETED REORDER_TASKS REQUEST_IGNORE_BATTERY_OPTIMIZATIONS REQUEST_INSTALL_PACKAGES SET_ALARM SET_TIME_ZONE SET_WALLPAPER SET_WALLPAPER_HINTS TRANSMIT_IR UNINSTALL_SHORTCUT USE_FINGERPRINT VIBRATE WAKE_LOCK WRITE_SYNC_SETTINGS 二. 涉及用户隐私的危险权限, 也需要在AndroidManifest.xml声明,并且需要开发者主动申请并在用户同意后才能使用该权限涉及到的功能, 如果开发者没有主动申请这类权限会导致app崩溃, 对于这类权限最好能在app启动时就申请一些必须的权限, 其他非必须的可以在使用时再申请,避免同时申请过多权限 参考地址:https://developer.android.com/guide/topics/security/permissions.html#perm-groups CALENDAR(日历) READ_CALENDAR 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_STORAGE3.使用基本流程if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {// 没有权限。 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) { // 用户拒绝过这个权限了,应该提示用户,为什么需要这个权限。 } else { // 申请授权。 ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, 100); }}...@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case 100: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 用户同意申请的权限 } else { // 用户拒绝了申请的权限 } return; } }}shouldShowRequestPermissionRationale():在用户第一次拒绝后, 再次对莫个权限调用此方法返回true; 在用户第二次拒绝并勾选不再提醒后,再次调用此方法会返回false; 在系统的权限管理中禁止应用的此权限会返回false.
0 0
- 随-2016-9-12
- 2016-9-12
- 2016/12/9
- 工作总结 西丽2016-9-12
- 择时 配置 选股 2016-9-12 图形正确
- 第一篇博客记载于2016-9-12
- 英语学习总结-破剑式-2016年12月9日
- 2016年12月9日学习笔记
- 2016年12月9日 课堂笔记
- 2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest【9/12】
- 白话空间统计番外四:轨迹特征分析实例 2016年9月9日 12:44
- 2016-12-12
- 2016-12-12
- 2016/12/12 杂谈
- CVPR 2016-12-12
- 2016-9-9
- 12-9
- 1613-3-傅溥衍 总结《2016年12月9日》【连续第七十天总结】
- 二进制思想以及数据的存储
- java菜鸟的成长历程 数组
- 当众责备
- jeebbs-src-v7.0版导入myeclipse步骤说明(开源论坛系统)
- [李景山php]每天laravel-20161114|FileViewFinder-2.php
- 2016-9-12
- 频率、波长、传输距离、传输速率之间的关系总结
- 如何优化tomcat配置(从内存、并发、缓存4个方面)优化
- 基于Gulp的前端自动化工程搭建
- Kubernetes容器集群中的日志系统集成实践
- transitionend 事件
- 让 Terminal/vim 使用 Solarized 配色
- Vert.x开篇
- 基于 Webpack & Vue & Vue-Router 的 SPA 初体验