這個是我工作之中接觸到的關于Android系統權限的問題,歡迎大家提出意見和問題進行交流。
1.運行時權限
說到權限,我首先說要說一下Android M(6.0 API23)的運行時權限,這是新的權限體系,不過畢竟出來已經有一段時間了,最常見的在應用中申請權限的方法我們就不說了,這個隨便一搜各種已經寫好的封裝好的代碼一堆堆。我的問題是,如果我們不想通過這種方式申請權限該怎么做?首先有一個特別簡單的辦法,Android 6.0有考慮向下兼容的情況,所以我們可以通過將程序的目標版本號設置到6.0之前(API<23),但是這個辦法可能有問題,如果Android系統在后期取消了這個設計就會產生問題。其實還有一個辦法,不過不是修改應用,我們需要修改framework來完成這個操作,在PackageManagerService.java中有個grantPermissionsLPw,我們可以通過修改它來對應用的權限進行預授予(參考文章:http://blog.csdn.net/blank557/article/details/51734541)。
2.系統權限(平臺權限)
實際開發中,我們有些功能可能需要系統權限,如小米主題商店的更換字體功能,完成之后需要進行重啟,而重啟這一操作則需要使用到系統權限,為了讓應用獲取到這個權限,我們有兩種辦法,第一,把應用放到源碼的環境下進行編譯并在makefile文件中使用平臺權限,第二,使用常規的IDE進行編譯,完成后使用使用對應的系統簽名包進行簽名,這里需要注意一個問題,系統權限的簽名包并不是通用的,使用6.0系統簽名的應用無法在5.1上正常使用系統簽名,而據說即使同樣是6.0的系統如果是不同的廠商定制的ROM,簽名包也不可以通用,所以系統權限的獲取其實是綁定ROM包的(個人理解)。
看文倉www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161228/79038.html
文章列表