Github: github.com/czy1121/set…
Blog: reezy.me/2016-12-25/…html
Android 6.0的特殊权限(Special Permissions)包括java
Android 6.0之前只要在manifest中申请了权限就是默认开启的
Android 6.0+须要在manifest中申请而且经过发送Intent让用户在设置界面进行勾选 android
检测git
Settings.canDrawOverlays
, Settings.System.canWrite
AppOpsManager.checkOp
受权 github
new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);复制代码
切换受权状态api
AppOpsManager.setMode
可用于Android 4.3/4.4
修改受权状态安全
API 18 添加AppOpsManager(被隐藏,在Android 4.4公开)
API 21 后须要签名验证的权限android.Manifest.permission.UPDATE_APP_OPS_STATS
,第三方应用用不了了。app
ROM测试
有些Rom会默认禁用权限,一般都有自带的权限管理spa
API 18+ 有些Rom会默认禁用权限,一般都有自带的权限管理,这时就须要检测Rom类型而后跳转到对应的设置页面
API 23+ 原本去系统设置面板就行了,但有些Rom会用自带的权限管理替代系统设置面板,这时仍然须要检测Rom类型而后跳转到对应的设置页面
其实是跳转到手机上的安全中内心对应的权限设置页,当安全中心版本不一样时相应的权限设置页也有可能不同
还有部分ROM的应用详细信息页能够设置权限
主要是测了悬浮窗权限
设备 | 系统版本 | ROM版本 | 状态 | 跳转 |
---|---|---|---|---|
华为 荣耀7i | 6.0.1 | 4.0 | 默认禁用 | ok |
华为 荣耀畅玩5X | 5.1.1 | 4.0.1 | 默认禁用 | ok |
华为 Ascend P7 | 5.1.1 | 3.1 | 默认禁用 | ok |
华为 荣耀6 | 5.1.1 | 3.1 | 默认禁用 | ok |
华为 荣耀6Plus | 4.4.4 | 3.0 | 默认禁用 | ok |
华为 畅享5S | 5.1 | 3.0 | 默认禁用 | ok |
华为 P8 | 5.0.1 | 3.1 | 默承认用 | ok,无安全中心 |
小米 MI 5 | 6.0 | V7 | 默认禁用 | ok |
小米 Note Pro | 5.1.1 | V8 | 默认禁用 | ok |
小米 红米 Pro | 6.0 | V8 | 默认禁用 | ok |
小米 红米1S | 4.4.2 | V7 | 默认禁用 | ok |
魅族 Pro5 | 5.1 | 5.1.11 | 默认禁用 | ok |
魅族 MX4 | 5.1 | 5.1.5 | 默认禁用 | ok |
魅族 魅蓝Note2 | 5.1 | 5.1.5 | 默认禁用 | ok |
魅族 M1 | 4.4.4 | 4.2.1 | 默承认用 | ok 悬浮窗不能覆盖到其它应用上 详情页有悬浮窗权限设置,禁用后无影响 |
锤子 坚果 | 5.1.1 | 2.5.3 | 默认禁用 | ok |
锤子 坚果 | 4.4.4 | 2.1.2 | 默认禁用 | ok |
OPPO A53 | 5.1.1 | 2.1 | 默承认用 | ok |
OPPO R7s | 4.4.4 | 2.1 | 默承认用 | ok |
VIVO X6S Plus | 5.1.1 | 2.5 | 默承认用 | 到达i管家 主页,未到悬浮窗管理页 |
VIVO X6 | 5.1 | 2.5 | 默承认用 | 到达i管家 主页,未到悬浮窗管理页 |
VIVO X5 | 5.0 | 2.5 | 默承认用 | 到达i管家 主页,未到悬浮窗管理页 |
VIVO X5M | 5.0.2 | 2.0 | 默承认用 | ok, i管家 没有悬浮窗管理功能 |
VIVO Y23L | 4.4.4 | 1.5 | 默承认用 | ok, i管家 没有悬浮窗管理功能 |
奇酷 青春版 | 5.1 | / | 默认禁用 | ok |
奇酷 F4 | 5.1 | / | 默认禁用 | ok |
奇酷 N4 | 6.0 | / | 默认禁用 | ok |
奇酷 N4S | 6.0.1 | / | 默认禁用 | ok |
三星 Galaxy S6 | 6.0.1 | / | 默承认用 | ok |
三星 Galaxy Note4 | 6.0.1 | / | 默承认用 | ok |
摩托罗拉 X Style | 5.1.1 | / | 默承认用 | ok |
联想 乐檬3 | 5.1.1 | / | 默承认用 | ok |
酷派 锋尚 pro | 4.4.4 | / | 默承认用 | ok |
金立 F103 | 5.0 | / | 默承认用 | ok |
乐视 乐 Max | 6.0.1 | / | 默承认用 | ok |
百度云真机
mtc.baidu.com/tinypace/ma…
腾讯优测真机
remote.utest.qq.com/deviceSearc…
欢迎star,fork,issue
// 检测是否受权
SettingsCompat.canDrawOverlays(Context)
SettingsCompat.canWriteSettings(Context)
// 设置受权状态,仅在未深度定制的 Android 4.3/4.4 上可用
SettingsCompat.setDrawOverlays(Context, boolean)
SettingsCompat.setWriteSettings(Context, boolean)
// 跳转到悬浮窗权限设置页
SettingsCompat.manageDrawOverlays(Context)
// 跳转到系统设置修改权限设置页,暂时只支持 Android 6.0+
SettingsCompat.manageWriteSettings(Context)复制代码
Android 悬浮窗权限各机型各系统适配大全
blog.csdn.net/self_study/…
github.com/zhaozepeng/…
Android M 权限最佳实践
chen-wei.me/2016/11/10/…
Android 权限管理 —— AppOps
3dobe.com/archives/51…
Android 4.3 隐藏功能 App Ops 分析
mssun.me/blog/androi…