我正在尝试使用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);
但它没有用。我怎么能这样做?
答案 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卡中,因此它将对所有其他项目开放。
答案 2 :(得分:-2)
数据库存储在每个应用程序的专用目录中。有时它甚至会被加密。 也许尝试使用超级用户权限。