リストビュー内にアプリのローカルデータベースからの情報を表示するために使用しようとしているウィジェットがあります。
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を使用することは不可能ですか?
誰かが私が本当に感謝する洞察を持っているなら、これは信じられないほどイライラしている、ハハ。