0
私は2つの異なるアプリケーションを持っています。 App Aは、定義されたカスタムアクセス権を必要とするカスタムアクセス権とコンテンツプロバイダを定義します。 Appのカスタムアクセス許可を使用してコンテンツプロバイダを読み取っている間にアクセス許可を拒否する
<Permission
android:name="com.casimirlab.simpleDeadlines.READ_DEADLINE_DATABASE"
android:protectionLevel="normal">
</Permission>
<uses-permission android:name="com.casimirlab.simpleDeadlines.READ_DEADLINE_DATABASE" />
...
<provider
android:name=".provider.DeadlineProvider"
android:authorities="com.casimirlab.simpleDeadlines.provider"
android:readPermission="com.casimirlab.simpleDeadlines.READ_DEADLINE_DATABASE"
android:exported="true"
android:grantUriPermissions="true" />
のAndroidManifest.xml:アプリA用
java.lang.SecurityException: Permission Denial: reading com.casimirlab.simpleDeadlines.provider.DeadlineProvider uri content://com.casimirlab.simpleDeadlines.provider/deadlines from pid=17350, uid=10070 requires com.casimirlab.simpleDeadlines.READ_DEADLINE_DATABASE, or grantUriPermission()
のAndroidManifest.xml:アプリケーションBはその権限を使用しています。しかし、アプリAのコンテンツプロバイダにアクセスしようと、私は次のエラーを取得しますB:
<uses-permission android:name="com.casimirlab.simpleDeadlines.READ_DEADLINE_DATABASE" />
クエリコードAppでB:
Uri uri = Uri.parse("content://com.casimirlab.simpleDeadlines.provider/deadlines");
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(uri, null, null, null, null);
私は両方のアプリで次のバージョンを使用しています。
compileSdkVersion 23
buildToolsVersion '25.0.0'
minSdkVersion 10
targetSdkVersion 23
アプリのインストール順序もわかります。私はまずApp AとApp Bをインストールします。
私は他の関連する質問を読んだことがありますが、その解決策は私を助けませんでした。