2

我是android新手。我在内容提供和解析器方面有一个疑问。我有我的自定义内容提供程序的应用程序,我想从另一个应用程序访问它的数据库。我已经创建了uri并给出了清单中的授权。从另一个[内容解析器]插入新值时,我的解析器应用程序如何知道contentprovider的列名称,因为我们必须创建ContentValues对象,并且在插入数据时需要列名称...请帮助如何从另一个应用程序中知道内容提供者数据库的列名[Content resolver]

回答

1

如果第三方应用程序他们的ContentProvider是公开的,他们可能有一个关于如何访问它的文档,否则你应该联系应用程序的作者。

否则,您可以使用空投影查询来自同一内容提供者的数据并打印您检索的光标中的所有列。

1

执行ContentProvider的标准方法是创建附加的“合同”类,它封装与ContentProvider(不管此ContentProvider是否导出)通信所需的所有信息。

如果您的ContentProvider应该可以从其他应用程序访问,则将其导出并将相应的“合同”类发布到客户端(例如,在网站上发布JavaDoc,通过邮件发送等)。

在AOSP中找到的“合同”类的示例是ContactsContract类。它的JavaDoc正在发布here。其来源可以发现here

相关问题