У меня есть виджет, который я пытаюсь использовать для отображения информации из локальной базы данных моего приложения внутри списка.
Я использую интерфейс RemoteViewsService.RemoteViewsFactory для загрузки содержимого списка. Если я запустил блок кода, который перезагружает список в методе onDataSetChanged. приложение вылетает со следующим сообщением:
11-01 16:40:39.540: E/ACRA(27175): DataDisplay fatal error : Permission Denial: reading com.datadisplay.content.ContentProviderAdapter uri content://com.datadisplay.provider.internalDB/events from pid=573, uid=10029 requires the provider be exported, or grantUriPermission()
Однако этот же код, выполняемый в конструкторе класса, работает просто отлично. Конечно, мне нужно, чтобы это также работало в методе onDataSetChanged для обновления и прочее.
Вот моя запись поставщика в манифесте:
<provider android:name="com.datadisplay.content.ContentProviderAdapter"
android:authorities="com.datadisplay.provider.internalDB"
android:exported="true"
android:enabled="true"
android:grantUriPermissions="true">
<grant-uri-permission android:pathPattern="/events/"/>
</provider>
Я экспортирую его и предоставляю разрешения Uri, такие как запросы сообщений об ошибках, но он все равно не работает. Я нашел этот вопрос, когда у парня возникла проблема, но в конечном итоге удалил пользовательские разрешения, и это сработало. У меня нет каких-либо пользовательских разрешений, но все равно не повезло:
Виджет с поставщиком контента; невозможно использовать ReadPermission?
Если у кого-то есть понимание, я был бы действительно благодарен, это становится невероятно расстраивающим, ха-ха.