国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android自定義權限使用總結

RobinQu / 2561人閱讀

摘要:使用場景自定義權限一般用于暴露出去的組件,提高安全性。擁有相同自定義權限的軟件必須使用同樣的簽名,否則后一個程序無法安裝。

最近在研究關于android自定義權限的問題,關于自定義權限一般是保證APP的安全性,那么什么事自定義權限?今天我們來補充一下自己的知識

作者:BrightVan
地址:https://www.jianshu.com/p/b60...
1、如何聲明自定義權限

在Manifest文件中使用Permission標簽定義自己的權限:

????????...

解釋下各個屬性:

name,該標簽就是權限的名字。

description,該標簽就是權限的介紹。

permissionGroup,指定該權限的組。

protectionLevel,指定保護級別。

Android將權限分為若干個保護級別,normal, dangerous, signature等。normal就是正常權限,該權限并不會給用戶或者設備的隱私帶來風險;dangerous就是危險權限,該級別的權限通常會給用戶的數據或設備的隱私帶來風險;signature指的是,只有相同簽名的應用才能使用該權限。更多的介紹可以參考protectionLevel。

2、使用場景

自定義權限一般用于暴露出去的組件,提高安全性。Android允許一個應用(客戶端)調用另一個應用(服務端)的組件。那么作為服務端的應用就得暴露相應的組件,客戶端應用才能訪問。當然,在暴露的時候,權限是非必須的,如果暴露的組件沒有權限的話,那么任何的其他應用都可以來調用該組件;如果該組件申請了權限,那么只有擁有該權限的應用才能調用該組件。

exported屬性就是代表是否暴露。該例子并沒有要求調用者需要申請權限,也就是說,任何的應用就可以調用才組件。如果每個應用都可以調用我們的組件的話,顯然是不安全的,我們希望只有使用了我們的權限的應用,才能調用我們暴露的組件,我們可以在activity中加入permission屬性。

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

除了上面的方式,還可以通過intent-filter隱式啟動:

????????????????????????????????
Intent?intent?=?new?Intent();intent.setAction("com.bright.permission.action.TEST");startActivity(intent);
3、自定義權限注意點 3.1、兩個應用聲明了相同的權限

Android不允許兩個不同的應用定義一個相同名字的權限(除非這兩個應用擁有相同的簽名),所以在命名的時候,需要特別注意。

擁有相同自定義權限的軟件必須使用同樣的簽名,否則后一個程序無法安裝。

3.2、和應用安裝順序的關系。

場景:App A中聲明了權限PermissionA,App B中使用了權限PermissionA。

情況一:PermissionA的保護級別是normal或者dangerous
App B先安裝,App A后安裝,此時App B無法獲取PermissionA的權限,從App B打開App A會報權限錯誤。
App A先安裝,App B后安裝,從App B打開App A一切正常。

情況二:PermissionA的保護級別是signature或者signatureOrSystem
App B先安裝,App A后安裝,如果App A和App B是相同的簽名,那么App B可以獲取到PermissionA的權限。如果App A和App B的簽名不同,則App B獲取不到PermissionA權限。
即,對于相同簽名的app來說,不論安裝先后,只要是聲明了權限,請求該權限的app就會獲得該權限。
這也說明了對于具有相同簽名的系統app來說,安裝過程不會考慮權限依賴的情況。安裝系統app時,按照某個順序(例如名字排序,目錄位置排序等)安裝即可,等所有app安裝完了,所有使用權限的app都會獲得權限。

3.3、權限的獲取以及版本兼容

Android6.0引入了動態權限,這個大家都知道了。前面說到的自定義的權限的安全級別android:protectionLevel會影響權限在Android6.0+系統的使用

android:protectionLevel="normal",不需要動態申請

android:protectionLevel="dangerous",需要動態申請

閱讀我的更多文章

近3年BAT面試真題整理合集

?Java并發面試,幸虧有點道行,不然又被忽悠了

NDK項目實戰—高仿360手機助手之卸載監聽

分享幾個Android很強勢的的開源框架

歡迎關注我微信公眾號:終端研發部,一起交流和學習

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76867.html

相關文章

  • android知識大總結 - 收藏集 - 掘金

    摘要:中簡單搞定接口訪問,以及簡析掘金最近總結的一些經驗,對于或中使用接口的一些心得。這里,本文將數據結構之學習總結掘金前言前面介紹了的數據結構,今天抽空學習總結一下另一種數據結構。淺析事件傳遞掘金中的事件傳遞主要涉及三個方法和。 Android 系統中,那些能大幅提高工作效率的 API 匯總(持續更新中...) - 掘金前言 條條大路通羅馬。工作中,實現某個需求的方式往往不是唯一的,這些不...

    luodongseu 評論0 收藏0

發表評論

0條評論

RobinQu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<