如何安全地查询另一个应用程序的CP

时间:2013-10-03 18:52:11

标签: android mysql android-contentprovider

我有两个应用程序,我想从App A创建一个查询来获取App B的信息。 这是一个非常简单的过程,如下所示,但我想仔细检查社区并获得一些建设性的批评。还有更好的方法吗?

谢谢。

此代码获取我的数据库中某人的姓名。

private Cursor getData() {


final Uri uri = Uri.parse("content://" + AUTHORITY + "/" + TABLE_PATH);
String[] projection = new String[] { "_id", "foo" };
String selection = null;
String[] selectionArgs = null;
String sortOrder = null;;


ContentResolver resolver = getContentResolver();
    return  resolver.query(uri, projection, selection, selectionArgs, sortOrder);

}

1 个答案:

答案 0 :(得分:1)

好吧,如果系统知道具有您指定权限的内容提供商,该提供程序识别提供程序识别的TABLE_PATH,,它应该可以正常工作“_id”和“foo”作为有效的列名。

但是,您似乎在问几个不同的问题:

  1. 这是查询其他应用内容提供商的安全方式吗?哦,是的;它是迄今为止从其他应用程序获取数据的首选方式。
  2. “此代码获取了我的数据库中某人的名字”。实际上,这是一个轻微的错误陈述。该代码针对具有权限AUTHORITY的内容提供程序运行查询,并针对名为TABLE_PATH的提供程序中的实体运行查询。尽管内容提供商经常将其数据存储在SQLite数据库中,但不需要数据库。 CP必须做的就是建立权限并响应传入的内容URI。