账户管理器的账户存储在哪里?它存储在设备上吗?如果是,它存储在哪个文件夹中?
它存储在这里:
Environment.getSystemSecureDirectory().getPath() + File.separator + DATABASE_NAME;
获取系统可用于安全存储的目录。如果启用了加密文件系统,则返回一个加密目录 (/data/secure/system)。否则,返回未加密的 /data/system 目录。
DATABASE_NAME = "accounts.db";
虽然答案完全正确,但您应该记住'Environment.getSystemSecureDirectory()'是平台API方法,而不是公共SDK的API的一部分。如果您查看其javadoc,您将意识到'@hide'注释:
/**
* Gets the system directory available for secure storage.
* If Encrypted File system is enabled, it returns an encrypted directory (/data/secure/system).
* Otherwise, it returns the unencrypted /data/system directory.
* @return File object representing the secure storage system directory.
* @hide
*/
隐藏方法仅供与平台本身一起分发的平台应用程序使用。它们是针对平台源代码进行编译的,而不是针对Play/Market的SDK源代码进行编译,因为Play/Market的应用程序需要这样做。
这意味着如果您想在Play/Market上分发您的应用程序,则不允许使用它。
/data/system/users/0/accounts.db
,请将0
替换为实际的用户编号。 - rymo