如何从android中的另一个应用程序使用sqlite数据库?

时间:2012-10-17 14:58:54

标签: android sqlite

  

可能重复:
  Share SQLite database between 2 android apps?

我正在尝试使用SQLite数据库,打开它,从中检索数据,插入数据,我做得很完美,但是我在同一个应用程序中创建的sqlite数据库,但我正在尝试与其他在其他应用程序中创建的数据库。

我试图像这样打开数据库:

String DB_PATH= "/data/data/my.sqlitemanager/databases/";
String DB_NAME = "commments";
SQLiteDatabase database = SQLiteDatabase.openDatabase(DB_PATH + DB_NAME, null, SQLiteDatabase.OPEN_READONLY);

但它没有用。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

一个人不只是打开另一个应用程序的数据库。 ;)

说真的,出于明显的安全原因(以及其他资源原因),默认情况下你不能这样做。如果您明白想要,您可以将数据从一个应用程序公开给其他应用程序。这可以通过以下方式完成:实现ContentProvider,或者使用相同的用户ID /权限专门运行两个应用程序。

更典型的方法是,如果您希望任何外部应用程序可以访问您的数据,那么将使用ContentProvider。

http://developer.android.com/guide/topics/providers/content-providers.html

如果您控制需要共享数据的“两个应用程序”,并且您想要禁止任何其他应用程序访问您的数据,那么您需要使用更高级的方法,以及用户标识和进程。一旦到位,您就可以直接共享数据。

http://developer.android.com/guide/topics/manifest/application-element.html#proc

答案 1 :(得分:1)

默认情况下,Sqlite db在每个项目的私人文件夹中创建,对其他项目保持隐藏状态。但是,您可以将Sqlite数据库保存在SD卡中,因此它将对所有其他项目开放。

Is it possible to copy database file to SD card?

答案 2 :(得分:-2)

数据库存储在每个应用程序的专用目录中。有时它甚至会被加密。 也许尝试使用超级用户权限。