Android6.0动态权限
2017-12-22 10:43
357 查看
Android6.0对于程序员来说最大的改变就是运行时权限,其目的就是让用户可以直接在运行时管理应用权限。
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”屏幕调用权限。
系统权限分为两类:正常权限和危险权限:
正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。
危险权限会授予应用访问用户机密数据的权限。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。如果您列出了危险权限,则用户必须明确批准您的应用使用这些权限。
普通权限包括:
危险权限和危险权限组包括:
官网:https://developer.android.google.cn/training/permissions/requesting.html
一、添加权限
这个和之前一毛一样,必须在清单文件中添加所需要的权限,不然必崩无疑。
二、检查权限
三、请求权限
四、处理权限请求响应
比如:获取系统相册时的动态权限申请
处理结果:
可以参考
http://blog.csdn.net/lmj623565791/article/details/50709663
http://blog.csdn.net/yanzhenjie1003/article/details/52503533/
从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限,而不提供设备位置的访问权限。用户可以随时进入应用的“Settings”屏幕调用权限。
系统权限分为两类:正常权限和危险权限:
正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。
危险权限会授予应用访问用户机密数据的权限。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。如果您列出了危险权限,则用户必须明确批准您的应用使用这些权限。
普通权限包括:
ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_NETWORK_STATE
ACCESS_NOTIFICATION_POLICY
ACCESS_WIFI_STATE
BLUETOOTH 4000
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
危险权限和危险权限组包括:
官网:https://developer.android.google.cn/training/permissions/requesting.html
一、添加权限
这个和之前一毛一样,必须在清单文件中添加所需要的权限,不然必崩无疑。
二、检查权限
// Assume thisActivity is the current activity int permissionCheck = ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_CALENDAR);
三、请求权限
// No explanation needed, we can request the permission. ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.READ_CONTACTS}, MY_PERMISSIONS_REQUEST_READ_CONTACTS);
四、处理权限请求响应
@Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! Do the // contacts-related task you need to do. } else { // permission denied, boo! Disable the // functionality that depends on this permission. } return; } // other 'case' lines to check for other // permissions this app might request } }
比如:获取系统相册时的动态权限申请
if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); } else { pickPhoto(); }
处理结果:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (requestCode == MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { pickPhoto(); } else { ToastUtil.showToast(mActivity, "请先获取访问权限!"); } return; } super.onRequestPermissionsResult(requestCode, permissions, grantResults); }
可以参考
http://blog.csdn.net/lmj623565791/article/details/50709663
http://blog.csdn.net/yanzhenjie1003/article/details/52503533/
相关文章推荐
- android6.0动态获取权限
- android6.0动态权限转载
- Android6.0权限动态分配
- Android6.0动态权限申请
- 移动开发----android6.0以上权限动态请求实现
- Android6.0动态权限
- 动态一次获取多种android6.0以上的权限
- Android6.0动态权限
- Android6.0的动态权限的简单使用
- Android6.0动态权限申请步骤以及需要注意的一些坑
- 高仿微信-微信EM开发流程--(3)Android6.0动态权限申请
- Android6.0动态权限申请步骤以及需要注意的一些坑
- Android6.0哪些权限要动态申请?
- Android6.0动态权限申请
- Android6.0动态权限申请步骤以及需要注意的一些坑
- Android6.0动态获取权限
- Android6.0动态权限申请
- android6.0手机动态申请权限的问题
- android6.0动态权限,以及如何同时授予多个权限,当用户禁用的后续处理
- android6.0 动态申请权限