如何定义content provider的权限及如何通过client获取权限?

lewi_yue 2015-10-15 05:03:13
你好,碰到如下问题,请帮忙解答下,谢谢。

在自定义的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可以调用。


菜鸟 学习中,请指导。
...全文
286 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lewi_yue 2015-10-15
  • 打赏
  • 举报
回复
Note: 如果把Content Provider更改成如下: <provider android:name="NotePadProvider" android:authorities="com.example.notepad.provider.NotePad" /> 在调用方 可以正常的 query和update。

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧