我为我的应用程序开发了导入/导出功能,因此用户可以导出数据库和共享首选项以在另一部手机中使用。这一直很好,直到我得到一个S3并试图这样做。
经过一些工作后我将数据库导入/导出工作(决定SCdards问题),但共享首选项仍然给我带来麻烦。
在新安装中导入失败,因为手机上没有共享首选项文件。一旦我更新了一个选项,就会创建文件(在检查中添加以查看手机上的文件是否存在)
这是创建它
this.sharedprefs = context.getSharedPreferences("sharedprefres.xml", Activity.MODE_PRIVATE);
这是检查文件
File sharedPrefencesFileOnPhone = new File(/data/data/PACKAGE_NAME/shared_prefs/, "sharedprefres.xml");
if (sharedPrefencesFileOnPhone.exists())
Log.d(DEBUG_TAG, "SP : Running Copy");
然后似乎复制了,但没有任何选项被更新。
这一切都可以在模拟器上运行而没有问题
只有在我更新了一个选项并且创建了一个文件后,该检查才有效,这使我相信保存了共享首选项。
S3是否隐藏了其他地方的共享偏好设置,如果有的话,我可以使用一些代码来跟踪它,这可以在多部手机上使用
感谢您的时间
答案 0 :(得分:0)
尝试
/dbdata/databases/package.name/shared_prefs/package.name_preferences.xml
(如果存在则使用它)
,否则
new File(getFilesDir(), "../shared_prefs");
或
/data/data/package.name/shared_prefs/package.name_preferences.xml