如果可能,请给我一些想法。
我使用mydb.db数据库创建了第一个应用程序,并在SD卡中存储了数据库。
使用相同的数据库名称mydb.db创建第二个应用程序并存储相同的位置。
运行第一个应用程序后,它正在sdcard中创建数据库,但第二个应用程序删除此数据库并创建自己的数据库。
如何保护第一个数据库以便通过第二个db删除?
logcat的:
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
答案 0 :(得分:2)
所有应用程序都可以访问SD卡上的文件(如果SD卡插入另一台机器,则可以访问其他人)。
如果您不希望其他应用访问您的数据,则必须将其存储在内部存储上的应用私有数据目录中。 但是,这也不会阻止它被删除,因为允许用户删除应用程序的数据。