6.0以下消玄,在manifest.xml中申請(qǐng)删壮,在應(yīng)用安裝時(shí)會(huì)被系統(tǒng)賦予權(quán)限;6.0上安裝時(shí)系統(tǒng)不會(huì)賦予權(quán)限炎咖,只有在運(yùn)行時(shí)動(dòng)態(tài)申請(qǐng)。
注意 6.0指的是targetSdkVersion為23或23以上的應(yīng)用
<permission>
自定義權(quán)限
<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
- android:description:對(duì)權(quán)限的描述,比lable更加的詳細(xì)乘盼,介紹該權(quán)限的相關(guān)使用情況升熊,比如當(dāng)用戶被詢問(wèn)是否給其他應(yīng)用該權(quán)限時(shí)。注意描述應(yīng)該使用的是string資源绸栅,而不是直接使用string串级野。
- android:icon:用來(lái)標(biāo)識(shí)該權(quán)限的一個(gè)圖標(biāo)。
- android:label:權(quán)限的一個(gè)給用戶展示的簡(jiǎn)短描述阴幌。方便的來(lái)說(shuō)勺阐,這個(gè)可以直接使用一個(gè)string字串來(lái)表示,但是如果要發(fā)布的話矛双,還是應(yīng)該使用string資源來(lái)表示渊抽。
- android:name:權(quán)限的唯一名字,由于獨(dú)立性议忽,一般都是使用包名加權(quán)限名懒闷,該屬性是必須的,其他的可選栈幸,未寫的系統(tǒng)會(huì)指定默認(rèn)值愤估。
- android:permissionGroup: 權(quán)限所屬權(quán)限組的名稱,并且需要在這個(gè)或其他應(yīng)用中使用<permission-group>標(biāo)簽提前聲明該名稱速址,如果沒(méi)有聲明玩焰,該權(quán)限就不屬于該組。
- android:protectionLevel:權(quán)限的等級(jí)
- normal
低風(fēng)險(xiǎn)權(quán)限芍锚,只要申請(qǐng)了就可以使用(在AndroidManifest.xml中添加<uses-permission>標(biāo)簽)昔园,安裝時(shí)不需要用戶確認(rèn); - dangerous
高風(fēng)險(xiǎn)權(quán)限并炮,安裝時(shí)需要用戶的確認(rèn)才可使用默刚; - signature
只有當(dāng)申請(qǐng)權(quán)限的應(yīng)用程序的數(shù)字簽名與聲明此權(quán)限的應(yīng)用程序的數(shù)字簽名相同時(shí)(如果是申請(qǐng)系統(tǒng)權(quán)限,則需要與系統(tǒng)簽名相同)逃魄,才能將權(quán)限授給它荤西; - signatureOrSystem
簽名相同,或者申請(qǐng)權(quán)限的應(yīng)用為系統(tǒng)應(yīng)用(在system image中)伍俘,與 signature類似邪锌,只是增加了rom中自帶的app的聲明 ,盡量不要使用該選項(xiàng)癌瘾,因?yàn)閟ignature已經(jīng)適合絕大部分的情況秃流。
對(duì)于普通和危險(xiǎn)級(jí)別的權(quán)限,我們稱之為低級(jí)權(quán)限柳弄,應(yīng)用申請(qǐng)即授予舶胀。其他兩級(jí)權(quán)限概说,我們稱之為高級(jí)權(quán)限或系統(tǒng)權(quán)限。當(dāng)應(yīng)用試圖在沒(méi)有權(quán)限的情況下做受限操作嚣伐,應(yīng)用將被系統(tǒng)殺掉以警示糖赔。系統(tǒng)應(yīng)用可以使用任何權(quán)限。權(quán)限的聲明者可無(wú)條件使用該權(quán)限轩端。
<uses-permission>
為了使當(dāng)前應(yīng)用可以順利運(yùn)行放典,需要申請(qǐng)系統(tǒng)訪問(wèn)權(quán)限。該權(quán)限申請(qǐng)后整個(gè)應(yīng)用中的所有組件都有該權(quán)限的訪問(wèn)權(quán)基茵。
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
android:name 權(quán)限名稱奋构,可以是系統(tǒng)提供的權(quán)限,也可以是使用其他應(yīng)用使用<permission/>聲明的權(quán)限(用于應(yīng)用間訪問(wèn))拱层。
android:maxSdkVersion 該權(quán)限支持的最大版本號(hào)弥臼,超過(guò)該版本后就不需要該權(quán)限。
<uses-feature>
告訴外部應(yīng)用根灯,自身應(yīng)用所依賴的硬件和軟件功能径缅。該屬性不會(huì)影響應(yīng)用的安裝,只是對(duì)外提供額外的信息烙肺。方便外部應(yīng)用按屬性檢索纳猪。
//該應(yīng)用需要照相機(jī)
<uses-feature android:name="android.hardware.camera" />
權(quán)限檢查
參考:
http://blog.csdn.net/self_study/article/details/50074781
http://blog.csdn.net/self_study/article/details/50186435