眾所周知,如果設備運行的是 Android 6.0(API 級別 23)或更高版本逗爹,并且應用的 targetSdkVersion?是 23 或更高版本,則應用在運行時向用戶請求權(quán)限蕊唐。用戶可隨時調(diào)用權(quán)限归敬,因此應用在每次運行時均需檢查自身是否具備所需的權(quán)限响蓉。
在使用小米手機進行開發(fā)的時候匆浙,我們可能會碰到這樣一種情況:在系統(tǒng)設置中對應用權(quán)限進行修改但是并沒有效果,而且自己實現(xiàn)的跳轉(zhuǎn)與系統(tǒng)設置中的權(quán)限設置頁面存在很大的差異(如圖1,圖2)。
圖 1 代碼跳轉(zhuǎn)的權(quán)限設置界面
圖 2 系統(tǒng)設置中的權(quán)限設置頁面
上述圖2中的權(quán)限設置完全沒有效果时鸵,而圖1中的權(quán)限設置也經(jīng)常無效什往。這到底是什么原因?qū)е碌哪兀?/p>
經(jīng)過排查發(fā)現(xiàn),MIUI中開發(fā)者選項里面有一項“MIUI優(yōu)化”的選項(圖3)迎捺,這個選項在未喚醒開發(fā)者選項的時候是默認選中的举畸,而在開啟“開發(fā)者選項"之后可被人為取消的,而取消這個選項將直接導致上述問題的出現(xiàn)凳枝。截止目前為止小米方面都沒有修復這個問題(估計是不打算修復了)抄沮。
圖3 小米手機開發(fā)者選項 - MIUI優(yōu)化
只要我們啟用MIUI優(yōu)化跋核,應用中跳轉(zhuǎn)的權(quán)限設置頁面就和設置中跳轉(zhuǎn)的權(quán)限設置頁面一樣了,同時權(quán)限設置修改也可以正常使用了叛买。