1

如果可能的话,请给我一些想法。

  1. 我用 mydb.db 数据库创建了第一个应用程序并将数据库存储在 sdcard 中。

  2. 创建了具有相同数据库名称 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
4

1 回答 1

2

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

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

于 2013-01-31T08:06:49.440 回答