Android AccountManager帐户存储

Android AccountManager帐户存储,android,accountmanager,accounts,Android,Accountmanager,Accounts,AccountManager帐户存储在哪里?它在设备上吗?如果是,它存储在哪个文件夹中?它存储在这里: Environment.getSystemSecureDirectory().getPath() + File.separator + DATABASE_NAME; 其中getSystemSecureDirectory: 获取可用于安全存储的系统目录。如果加密 如果启用文件系统,它将返回一个加密的目录 (/data/secure/system)。否则,它将返回未加密的 /数据/系统目录 和D

AccountManager帐户存储在哪里?它在设备上吗?如果是,它存储在哪个文件夹中?

它存储在这里:

Environment.getSystemSecureDirectory().getPath() + File.separator + DATABASE_NAME;
其中getSystemSecureDirectory:

获取可用于安全存储的系统目录。如果加密 如果启用文件系统,它将返回一个加密的目录 (/data/secure/system)。否则,它将返回未加密的 /数据/系统目录


DATABASE_NAME=“accounts.db”

虽然答案完全正确,但您应该记住,“Environment.getSystemSecureDirectory()”是一种平台API方法,而不是公共SDK API的一部分。如果您查看它的javadoc,您将了解到“@hide”注释:

隐藏方法仅适用于与平台本身一起分发的平台应用程序。它们是根据平台源代码而不是SDK源代码编译的,因为Play/Market应用程序是必需的


这意味着,如果您想在Play/Market上发布应用程序,则不允许您使用它。

感谢您的及时回复!在支持多用户配置文件的较新版本上,您可以在
/data/system/users/0/accounts.db
找到数据库,并用实际用户编号替换
0
 /**
 * 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
 */