Android系統架構設計下,許可權管理是其核心思想之一,Android引入了許可權管理機制,使得開發者可以在其應用程序中聲明需要訪問的許可權以及限制其他應用程序訪問其敏感數據。其中,uses-permission在許可權管理中扮演了重要的角色。
一、usesPermissionFlags
usesPermissionFlags是一個用於向Android系統表明其訪問某種許可權時所需的標誌位的元素。在聲明的時候,它需要在uses-permission標籤中添加android:flags標籤,並在其中列出每個標誌。flags的類型為int。
<manifest ...> <uses-permission android:name="android.permission.WRITE_SETTINGS" android:label="string resource" android:description="string resource" android:icon="drawable resource" android:permissionGroup="string resource" android:protectionLevel="normal" android:flags="int"> </uses-permission> </manifest>
其中,android:flags=”int”,int是一個從以下列表中選擇的整數值的拼接:
1、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS:請求省電模式忽略(this is to request that the app be whitelisted from being affected by battery optimizations like Doze mode)
2、REQUEST_INSTALL_PACKAGES:請求安裝應用程序
3、REQUEST_DELETE_PACKAGES:請求刪除應用程序
4、REQUEST_IGNORE_BACKGROUND_DATA_SETTINGS:請求忽略後台數據設置
5、REQUEST_WIPE_DATA:請求擦除設備的所有數據
二、uses permission android
uses permission android 用於表明某個應用程序需要使用的許可權。在AndroidManifest.xml文件的manifest元素中聲明。在uses-permission元素中復用它,如下:
<manifest package="string" xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation=["auto"|"internalOnly"|"preferExternal"]> ... <uses-permission android:name="string"/> <permission android:name="string" android:label="string resource" android:description="string resource" android:permissionGroup="string resource" android:protectionLevel=["normal"|"dangerous"| "signature"|"signatureOrSystem"] /> <permission-tree android:name="string" android:label="string resource" android:description="string resource" android:permissionGroup="string resource" android:protectionLevel=["normal"|"dangerous"| "signature"|"signatureOrSystem"] /> <permission-group android:name="string" android:label="string resource" android:description="string resource" android:priority="integer" android:icon="drawable resource" /> ... </manifest>
其中,uses permission android的屬性包括:
1、android:name
應用所請求的許可權的名稱,例如android.permission.READ_CONTACTS。
2、android:maxSdkVersion
指定該許可權適用的最高SDK版本
3、android:minSdkVersion
指定該許可權適用的最低SDK版本
4、android:required
是否將該許可權視為內置到應用中
5、android:supportsRtl
表明您的應用程序支持從右到左的布局。
三、uses permission
uses permission是一個必需元素,用於表明應用程序需要哪些許可權,這將在Android系統上運行。以下是一個例子:
<manifest package="string" xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:versionName="string" android:installLocation=["auto"|"internalOnly"|"preferExternal"]> <uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" /> <uses-configuration /> <uses-feature android:name="string" android:glEsVersion="integer" android:required=["true"|"false"] /> <uses-permission android:name="string" android:maxSdkVersion="integer" android:minSdkVersion="integer" android:required=["true"|"false"] android:protectionLevel=["normal"|"dangerous"| "signature"|"signatureOrSystem"] /> <permission android:name="string" android:permissionGroup="string" android:protectionLevel=["normal"|"dangerous"|"signature"|"signatureOrSystem"]> ... </manifest>
uses permission的一些屬性包括:
1、android:name
應用所請求的許可權的名稱,例如android.permission.READ_CONTACTS。
2、android:maxSdkVersion
指定該許可權適用的最高SDK版本
3、android:minSdkVersion
指定該許可權適用的最低SDK版本
4、android:required
是否將該許可權視為應用程序的一部分
5、android:protectionLevel
指定此許可權的保護級別
四、總結
在Android許可權管理中,uses-permission扮演了重要的角色。使用uses-permission,可以指定應用程序需要哪些許可權;通過uses permission android,可以申請需要使用的許可權;使用usesPermissionFlags可以為許可權增加標誌位,在訪問時加以區分不同的許可權。
原創文章,作者:YOILO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334033.html