如果可以的话,请告诉我。


我使用mydb.db数据库创建了第一个应用程序,并将数据库存储在sdcard中。
用相同的数据库名称mydb.db创建了第二个应用程序,并存储了相同的位置。


运行第一个应用程序后,它将在sdcard中创建数据库,但是第二个应用程序将删除该数据库并创建自己的数据库。

如何保护第一个数据库被第二个数据库删除?

日志猫:

01-31 12:22:15.649: D/dalvikvm(25919): GC_EXPLICIT freed 77K, 4% free 6383K/6599K, paused 4ms+6ms
01-31 12:30:29.389: D/dalvikvm(25919): GC_EXPLICIT freed 10K, 4% free 6377K/6599K, paused 3ms+3ms

01-31 12:31:41.029: I/SqliteDatabaseCpp(6547): sqlite returned: error code = 26, msg = file is encrypted or is not a database, db=/mnt/sdcard/sdcard/appdatabase
01-31 12:31:41.029: E/SqliteDatabaseCpp(6547): CREATE TABLE android_metadata failed
01-31 12:31:41.039: E/DefaultDatabaseErrorHandler(6547): Corruption reported by sqlite on database: /mnt/sdcard/sdcard/appdatabase
01-31 12:31:41.079: E/DefaultDatabaseErrorHandler(6547): deleting the database file: /mnt/sdcard/sdcard/appdatabase
01-31 12:31:41.409: V/creating DB(6547): its done
01-31 12:31:41.479: V/TLINE(6547): new: android.text.TextLine@40668ae0

最佳答案

所有应用程序都可以访问SD卡上的文件(如果SD卡已插入另一台计算机,则其他任何人都可以访问SD卡上的文件)。

如果您不希望其他应用程序访问您的数据,则必须将其存储在内部存储器上应用程序的私有数据目录中。
但是,这也不能阻止它被删除,因为允许用户删除应用程序的数据。

10-04 22:09
查看更多