簡體   English   中英

自定義內容提供程序和權限拒絕例外

[英]Custom content provider and Permission Denial exception

)我有兩個應用程序。 在應用程序A中,我有一個數據庫,可以從應用程序B中進行訪問。我創建了自己的ContentProvider,以使應用程序B可以將數據寫入應用程序A。但是,當我安裝應用程序B然后安裝應用程序A時,我得到了此異常-java.lang.SecurityException:權限拒絕:打開提供程序。 但是,當我安裝應用程序A,然后安裝B時-一切正常,應用程序可以通過提供程序進行通信。 我想知道這是正常的Android行為還是會出問題? 謝謝

編輯

這是我的應用程序中的一塊清單

<permission android:name="com.myapp.READ_DATABASE" android:protectionLevel="normal" />
<permission android:name="com.myapp.WRITE_DATABASE" android:protectionLevel="normal" />

<provider android:authorities="....."
            android:name="......"
            android:exported="true"
            android:readPermission="com.myapp.READ_DATABASE"
            android:writePermission="com.myapp.WRITE_DATABASE">
        </provider>

這是我的應用程序B清單的一部分

<uses-permission android:name="com.myapp.READ_DATABASE"/>
<uses-permission android:name="com.myapp.WRITE_DATABASE"/>

您的問題是應用安裝的順序。 您應該首先安裝App A(提供內容提供者和權限的應用程序),然后安裝App B(訪問內容提供者的應用程序)。

好的,我找到了答案,但是它有缺點。 您需要將權限屬性添加到清單中的兩個應用程序中。

<permission android:name="com.example.permission.READ" 
android:protectionLevel="normal"/>

缺點是兩個應用程序都必須使用相同的簽名證書才能運行,否則Android不允許您安裝兩個應用程序。

另請注意,使用中的應用應使用簽名的保護級別

<permission android:name="com.example.permission.READ" 
android:protectionLevel="signature"/>

請參閱此處的答案安裝應用程序的順序正在改變行為?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM