我遇到内容提供商的问题。我正在尝试创建一个内容提供商。
public static final Uri CONTENT_URI =
Uri.parse("content://data/data/one.two/databases");
这导致我的数据库,因为我想从中提取数据并在列表视图中显示它。 之后,我必须编辑插入提供者的清单
<provider android:name="databases789"
android:grantUriPermissions="true"
android:enabled="true"
android:syncable="true"
android:authorities="one.two.databases" >
</provider>
但是,它显示了没有one.two.databases存在的错误。
答案 0 :(得分:5)
您可能想从这里开始:
http://developer.android.com/guide/topics/providers/content-providers.html
一些提供帮助的具体提示:
首先,您的URI不是数据库文件的路径。它以“content://”开头,然后具有权限,最后是数据库名称(通常)。
您的权限是您提供的名称,通常是您的包裹名称,最后是“提供者”。所以你的可能是one.two.provider。
然后你在项目中创建一个新类,比如MyProvider.java。按照那里的链接示例,了解您的提供商要做什么来实际提供数据。
最后,在您的AndroidManifest.xml文件中,您可以执行以下操作:
<provider
android:authorities="one.two.provider"
android:name="MyProvider"
></provider>
这告诉Android操作系统将您的权限(one.two.provider)挂钩到您的班级。
答案 1 :(得分:1)
您必须在自己AndroidManifest.xml
的{{1}}中指定内容提供商的名称。
ContentProvider