如何定义content provider的权限及如何通过client获取权限?
你好,碰到如下问题,请帮忙解答下,谢谢。
在自定义的content provider里面定义了如下权限:
<provider android:name="NotePadProvider"
android:authorities="com.example.notepad.provider.NotePad"
android:readPermission="com.example.notepad.provider.READ_PERMISSION"
android:writePermission="com.example.notepad.provider.WRITE_PERMISSION"/>
在client访问这个content provider的时候(调用query,delete,update),总是提示如下错误:
10-15 16:56:06.683: E/AndroidRuntime(13525): java.lang.SecurityException: Permission Denial: opening provider com.example.android.notepad.NotePadProvider from ProcessRecord{43220a30 13525:com.lewi.anroidtestapp/u0a168} (pid=13525, uid=10168) requires com.example.notepad.provider.READ_PERMISSION or com.example.notepad.provider.WRITE_PERMISSION
10-15 16:56:06.683: E/AndroidRuntime(13525): at com.lewi.contentprovider.ContentProviderActivity.InsertNotepadData(ContentProviderActivity.java:185)
我已经在Client的Manifest.xml这里增加了权限,如下(尝试过不同的组合):
<!--
<uses-permission android:name="com.example.notepad.provider.READ_PERMISSION"/>
<uses-permission android:name="com.example.notepad.provider.WRITE_PERMISSION"/>
-->
<uses-permission android:name="com.example.notepad.provider.NotePad"/>
不知道问题出在哪里?要么是定义的权限有问题,要么是client获取的方式有问题?
需求:我希望做一个对外开放读写权限的Content Provider,在client可以调用。
菜鸟 学习中,请指导。