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…