Android 程序申請權(quán)限注意事項
為Android 程序申請權(quán)限注意
Android系統(tǒng)提供為程序提供了權(quán)限申請,即在manifest中使用uses-permission來申請即可.實現(xiàn)起來非常簡單,但是有些問題會隨之浮出水面. 常見的現(xiàn)象是,有時候新加一個權(quán)限,(在Google Play上)程序顯示的支持的設(shè)備會減少.
為什么權(quán)限越多,支持設(shè)備越少
因為有些權(quán)限隱式地需要feature,即當(dāng)你顯示使用uses-permission,會默認地為程序加入uses-feature.
而Android以及Google Play判斷是否可以安裝和現(xiàn)實的依據(jù)是,設(shè)備包含的system features是否完全包含程序申請的全部features. 只有在全部滿足了程序需要的feature的設(shè)備上才可以展示并安裝.
如何查看程序使用了哪些features
使用aapt dump badging your_apk_file_path,具體可以參考獲取程序需要的features
如何查看設(shè)備具有的features
Android提供了該API,具體參考獲取系統(tǒng)支持的features
舉個例子
我們在程序manifest加入一行申請攝像頭的權(quán)限.
<uses-permission android:name="android.permission.CAMERA" />
然后查看程序加入的feature
14:29 $ aapt dump badging PermissionDemo.apk | grep uses-feature
我們就會發(fā)現(xiàn),這兩個權(quán)限是新加的
uses-feature:'android.hardware.camera'
uses-feature:'android.hardware.camera.autofocus'
解決問題:如何加權(quán)限,不減少支持設(shè)備
如果你增加的權(quán)限并且及引入的feature不是必須使用的,可以顯示地將該feature設(shè)置為不需要.繼續(xù)上面的例子.在manifest中加入
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
重新生成程序.再次查看需要的權(quán)限.
14:29 $ aapt dump badging PermissionDemo.apk | grep uses-feature
uses-feature-not-required:'android.hardware.camera.autofocus'
uses-feature-not-required:'android.hardware.camera'
uses-feature:'android.hardware.touchscreen'
就這樣,可以做到增加權(quán)限,同時保證支持設(shè)備不減少.
Show Me The Code
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.droidyue.demo.permission"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
</application>
</manifest>
延伸閱讀
http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions
以上就是對Android 程序申請權(quán)限的資料整理,后續(xù)繼續(xù)補充相關(guān)資料,謝謝大家對本站的支持!
相關(guān)文章
在Android打包中區(qū)分測試和正式環(huán)境淺析
這篇文章主要給大家介紹了關(guān)于在Android打包中如何區(qū)分測試和正式環(huán)境的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。2017-10-10
Android 創(chuàng)建與解析XML(四)——詳解Pull方式
本篇文章主要介紹了Android創(chuàng)建與解析XML(二)——詳解Pull方式,這里整理了詳細的代碼,有需要的小伙伴可以參考下。2016-11-11
Android調(diào)節(jié)屏幕亮度實現(xiàn)代碼
這篇文章主要介紹了Android調(diào)節(jié)屏幕亮度實現(xiàn)代碼,調(diào)節(jié)屏幕亮度時,先設(shè)置當(dāng)前activity亮度,再并保存為系統(tǒng)亮度即可,本文分別給出兩個步驟的實現(xiàn)代碼,需要的朋友可以參考下2015-05-05
Android開發(fā)實現(xiàn)切換主題及換膚功能示例
這篇文章主要介紹了Android開發(fā)實現(xiàn)切換主題及換膚功能,涉及Android界面布局與樣式動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-03-03
深入學(xué)習(xí)Kotlin?枚舉的簡潔又高效進階用法
這篇文章主要為大家介紹了深入學(xué)習(xí)Kotlin?枚舉簡潔又高效的進階用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
Android使用xUtils3.0實現(xiàn)文件上傳
這篇文章主要為大家詳細介紹了Android使用xUtils3.0實現(xiàn)文件上傳的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11

