如何实现只读的ContentProvider?

Ste*_*los 6 permissions android readonly android-contentresolver android-contentprovider

我想知道如何最好地实现只读的ContentProvider.我希望我的数据源只能通过我的ContentProvider的其他特殊方法(我当然无法通过ContentResolver访问)在我自己的应用程序中进行修改.换句话说,其他应用程序应该只能使用我的ContentProvider的查询方法,但不能使用插入,删除或更新.

显而易见的解决方案似乎是返回null/0/0并且在insert/delete/update中不执行任何操作.是不是总是在这些方法中抛出异常,以便清楚地表明不允许这些操作?或者是否有可能仅通过权限将对ContentProvider的访问限制为查询方法?

Jus*_*ler 3

实现此目的的一种方法是通过安全权限,您可以通过ContentProvider 段落中的此链接访问该权限。具体来说,您可以在 AndroidManifest xml 文件中为您的提供程序设置writePermission 。

但是,如果您不想使用安全权限,则可以使用第二段中提到的方法。我建议抛出异常,以便清楚地表明无法访问那些特定的插入/更新/删除功能。