android自定義權(quán)限可能出現(xiàn)的問題

為了方便描述,這里先定義兩個(gè)app的名字:
調(diào)用方:A
被調(diào)用方:B
A調(diào)用B的Activity名字:AActivity
被調(diào)用方的Activity名字:BActivity
一個(gè)很可能出現(xiàn)的異常:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=xxx/.xxx.BActivity } from null (pid=3202, uid=2000) requires xxx.permission

在B的manifest.xml的manifest標(biāo)簽里定義自定義權(quán)限(signature代表同樣簽名的app才可以調(diào)用)

<permission
        android:name="xxx.permission"
        android:label="權(quán)限描述"
        android:permissionGroup="權(quán)限組名,隨便寫"
        android:protectionLevel="signature"/>

還需要在B的manifest.xml里寫上類似下面的代碼,注意最好添加android:exported="true",雖然如果intent-filter下面有action會(huì)默認(rèn)android:exported為true,但是最好還是寫上,因?yàn)榧词褂衋ction也可以將android:exported設(shè)置為false的
(例如這里叫BActivity)
(如果需要隱藏這個(gè)app的圖標(biāo),就添加類似下面的data屬性)

<activity
  android:name=".BActivity"
  android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    <data
        android:host="隨便寫"
        android:scheme="隨便寫" />
  </intent-filter>
</activity>

然后在A的manifest.xml的manifest標(biāo)簽里寫上,否則如果先安裝A再安裝B會(huì)出現(xiàn)上面說的授權(quán)錯(cuò)誤

<uses-permission android:name="xxx.permission"/>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評(píng)論 25 709
  • 1.什么是Activity?問的不太多,說點(diǎn)有深度的 四大組件之一,一般的,一個(gè)用戶交互界面對(duì)應(yīng)一個(gè)activit...
    JoonyLee閱讀 5,858評(píng)論 2 51
  • 哎呀呀 ,馬上就要面臨找工作了,媛媛心里緊張呀. 作為一個(gè)即將畢業(yè)的Android程序媛,開始面臨找工作了,...
    左神話閱讀 5,155評(píng)論 7 59
  • 現(xiàn)在的孩子真的很可憐,他們不是單純承擔(dān)著學(xué)習(xí)壓力,主要還是承擔(dān)著家庭三代人的期望。現(xiàn)在的父母不知道在想些什么,居然...
    簡(jiǎn)單最上乘閱讀 389評(píng)論 0 0
  • 簡(jiǎn)介 以前寫了一個(gè)軟件,叫音樂計(jì)步器,在騰訊的應(yīng)用寶可以下載,當(dāng)時(shí)測(cè)試沒問題,服務(wù)器用的免費(fèi)的Bmob云,但是后來...
    世外大帝閱讀 939評(píng)論 0 15

友情鏈接更多精彩內(nèi)容