我有一个小部件,我试图用它在列表视图中显示来自应用程序本地数据库的信息。
我正在使用 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?
如果有人有见识,我将不胜感激,这令人难以置信的沮丧,哈哈。