You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Nougat迁移至Device Protected Storage的SharedPreferences路径查询

迁移至设备加密存储后的SharedPreferences路径

当你通过createDeviceProtectedStorageContext()将SharedPreferences迁移到设备加密存储后,文件的新路径为:
/data/user_de/0/<你的应用包名>/shared_prefs/<你的SharedPreferences文件名>.xml

关键细节说明:

  • user_de是Android系统中设备加密存储区域的专属标识,区别于凭证加密存储的user目录。
  • 0代表当前设备的主用户ID,如果设备存在多用户场景,这个数字会对应不同的用户ID。

如何验证路径:

你可以通过代码动态获取准确路径,避免硬编码带来的适配问题:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    Context deviceContext = context.createDeviceProtectedStorageContext();
    // 从设备加密存储的根目录拼接SharedPreferences文件路径
    File prefsDir = new File(deviceContext.getFilesDir().getParentFile(), "shared_prefs");
    File prefsFile = new File(prefsDir, PREFERENCES_NAME + ".xml");
    Log.d(TAG, "迁移后的SharedPreferences路径:" + prefsFile.getAbsolutePath());
}

备份/恢复的注意事项:

  • 该路径属于应用私有存储区域,需要Root权限才能直接通过文件管理器复制。如果没有Root权限,建议通过应用自身代码读取SharedPreferences的键值对,再写入外部存储实现备份;恢复时则读取外部存储的备份数据,通过deviceContext对应的SharedPreferences写入。
  • 恢复操作必须使用createDeviceProtectedStorageContext()获取的Context,否则数据会被写入凭证加密存储路径,无法在DirectBoot模式下访问。

内容的提问来源于stack exchange,提问作者Flyview

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:11:25