真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解Android自定義權(quán)限使用總結(jié)

1、如何聲明自定義權(quán)限

創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括沁源網(wǎng)站建設(shè)、沁源網(wǎng)站制作、沁源網(wǎng)頁(yè)制作以及沁源網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,沁源網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到沁源省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

在Manifest文件中使用Permission標(biāo)簽定義自己的權(quán)限:

<?xml version="1.0" encoding="utf-8"?>


 
 ...


解釋下各個(gè)屬性:

  1. name,該標(biāo)簽就是權(quán)限的名字。
  2. description,該標(biāo)簽就是權(quán)限的介紹。
  3. permissionGroup,指定該權(quán)限的組。
  4. protectionLevel,指定保護(hù)級(jí)別。

Android將權(quán)限分為若干個(gè)保護(hù)級(jí)別,normal, dangerous, signature等。normal就是正常權(quán)限,該權(quán)限并不會(huì)給用戶或者設(shè)備的隱私帶來(lái)風(fēng)險(xiǎn);dangerous就是危險(xiǎn)權(quán)限,該級(jí)別的權(quán)限通常會(huì)給用戶的數(shù)據(jù)或設(shè)備的隱私帶來(lái)風(fēng)險(xiǎn);signature指的是,只有相同簽名的應(yīng)用才能使用該權(quán)限。更多的介紹可以參考 protectionLevel 。

2、使用場(chǎng)景

自定義權(quán)限一般用于暴露出去的組件,提高安全性。Android允許一個(gè)應(yīng)用(客戶端)調(diào)用另一個(gè)應(yīng)用(服務(wù)端)的組件。那么作為服務(wù)端的應(yīng)用就得暴露相應(yīng)的組件,客戶端應(yīng)用才能訪問(wèn)。當(dāng)然,在暴露的時(shí)候,權(quán)限是非必須的,如果暴露的組件沒有權(quán)限的話,那么任何的其他應(yīng)用都可以來(lái)調(diào)用該組件;如果該組件申請(qǐng)了權(quán)限,那么只有擁有該權(quán)限的應(yīng)用才能調(diào)用該組件。

exported屬性就是代表是否暴露。該例子并沒有要求調(diào)用者需要申請(qǐng)權(quán)限,也就是說(shuō),任何的應(yīng)用就可以調(diào)用才組件。如果每個(gè)應(yīng)用都可以調(diào)用我們的組件的話,顯然是不安全的,我們希望只有使用了我們的權(quán)限的應(yīng)用,才能調(diào)用我們暴露的組件,我們可以在activity中加入permission屬性。

Intent intent = new Intent();
intent.setClassName("com.bright.permission", "com.bright.permission.TestA_Activity");
startActivity(intent);

除了上面的方式,還可以通過(guò)intent-filter隱式啟動(dòng):


 
  
  
 
Intent intent = new Intent();
intent.setAction("com.bright.permission.action.TEST");
startActivity(intent);

3、自定義權(quán)限注意點(diǎn)

3.1、兩個(gè)應(yīng)用聲明了相同的權(quán)限

  1. Android不允許兩個(gè)不同的應(yīng)用定義一個(gè)相同名字的權(quán)限(除非這兩個(gè)應(yīng)用擁有相同的簽名),所以在命名的時(shí)候,需要特別注意。
  2. 擁有相同自定義權(quán)限的軟件必須使用同樣的簽名,否則后一個(gè)程序無(wú)法安裝。

3.2、和應(yīng)用安裝順序的關(guān)系。

場(chǎng)景:App A中聲明了權(quán)限PermissionA,App B中使用了權(quán)限PermissionA。

情況一:PermissionA的保護(hù)級(jí)別是normal或者dangerous

App B先安裝,App A后安裝,此時(shí)App B沒有獲取到PermissionA的權(quán)限。

即,此種情況下,權(quán)限必須先聲明再使用。即使App A和App B是相同的簽名。

情況二:PermissionA的保護(hù)級(jí)別是signature或者signatureOrSystem

App B先安裝,App A后安裝,如果App A和App B是相同的簽名,那么App B可以獲取到PermissionA的權(quán)限。如果App A和App B的簽名不同,則App B獲取不到PermissionA權(quán)限。

即,對(duì)于相同簽名的app來(lái)說(shuō),不論安裝先后,只要是聲明了權(quán)限,請(qǐng)求該權(quán)限的app就會(huì)獲得該權(quán)限。

這也說(shuō)明了對(duì)于具有相同簽名的系統(tǒng)app來(lái)說(shuō),安裝過(guò)程不會(huì)考慮權(quán)限依賴的情況。安裝系統(tǒng)app時(shí),按照某個(gè)順序(例如名字排序,目錄位置排序等)安裝即可,等所有app安裝完了,所有使用權(quán)限的app都會(huì)獲得權(quán)限。

3.3、權(quán)限的獲取以及版本兼容

Android6.0引入了動(dòng)態(tài)權(quán)限,這個(gè)大家都知道了。前面說(shuō)到的自定義的權(quán)限的安全級(jí)別android:protectionLevel會(huì)影響權(quán)限在Android6.0+系統(tǒng)的使用

  • android:protectionLevel="normal",不需要?jiǎng)討B(tài)申請(qǐng)
  • android:protectionLevel="dangerous",需要?jiǎng)討B(tài)申請(qǐng)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文題目:詳解Android自定義權(quán)限使用總結(jié)
文章位置:http://weahome.cn/article/ppspji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部