Мое приложение имеет 2 типа провайдера
Базовый поток связи - 3-е приложение. DP запрашивает некоторую информацию, а DP запрашивает CP эту информацию и возвращает информацию 3-му приложению.
Предположим, мы используем Microsoft Word / Excel для получения некоторых данных из DocumentProvider.Это схема обмена данными между приложениями:
Word <-------> Поставщик документов <---- ошибка здесь ----> ContentProvider
Проблема в том, что DocumentProvider не имеет доступа к своему собственному ContentProvider.Я имею в виду, что DP и CP находятся внутри 1 приложения, но работают в разных процессах.
Ошибка:
java.lang.SecurityException: Permission Denial: reading com.app.name.provider.DataBaseContentProvider uri content://com.app.name.db.provider/files/innnerFiles/151515 from pid=6655, uid=10042 requires the provider be exported, or grantUriPermission
DP:
<provider
android:name="com.app.name.provider.DocProvider"
android:authorities="com.app.name.provider.DocProvider"
android:exported="true"
android:grantUriPermissions="true"
android:permission="android.permission.MANAGE_DOCUMENTS">
<intent-filter>
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
</intent-filter>
</provider>
CP:
<provider
android:name="com.app.name.provider.DBProvider"
android:authorities="com.app.name.provider.DBProvider"
android:exported="false" />