Android中是不是有类似iPhone的钥匙串?

Posted

技术标签:

【中文标题】Android中是不是有类似iPhone的钥匙串?【英文标题】:Is there an iPhone-like Keychain in Android?Android中是否有类似iPhone的钥匙串? 【发布时间】:2011-01-25 13:25:41 【问题描述】:

我在 iPhone 上寻找类似 @​​987654321@ 的东西,但用于 android 开发。即使用户重新安装应用程序,我也能够保存持久不变的小键值对。

有类似的吗?我可以这样使用标准首选项吗?

我希望实现类似于在 PC 上处理游戏的方式的行为 - 将保存文件写入另一个文件夹,以便在删除和重新安装后保存文件不会丢失。


编辑:

没有人提到accountManager,赏金就用完了。我只是偶然发现了它。这会是实现我描述的行为的方法吗?

【问题讨论】:

【参考方案1】:

您像 Michael Cramer 所说的那样使用 SD 卡上的存储空间(让用户知道您正在存储数据 :-))。删除应用时不会删除 SD 卡上的数据。

另一方面,您可以使用存储所有详细信息的服务器,这些详细信息可以在需要时下载,而不是使用用户名,而是使用手机的唯一 IMEI。这样,即使用户重新安装操作系统,他仍然可以重新获取设置。

获取IMEI您可以参考:How to get the device's IMEI/ESN programmatically in android?

【讨论】:

这是 2010 年的答案,所以我想警告一下,现在这是不可接受的答案。 1)您不应该将文件存储在您的应用目录存储之外(范围存储 android 11)。它将可供所有人使用。 2)您无法在所有设备/android 版本上获取 IMEI【参考方案2】:

你有真正的东西在这里:

通过将 Smart Lock for Passwords 集成到您的 Android 应用中,您可以 使用他们的凭据自动将用户登录到您的应用程序 已保存。用户可以保存用户名密码凭据和 联合身份提供者凭据。

使用 Smart Lock for Passwords 将 Smart Lock for Passwords 集成到您的应用中 用于在登录时检索保存的凭据的凭据 API。采用 成功检索凭据以使用户登录,或使用 凭据 API 可通过部分完成快速加入新用户 您的应用程序的登录或注册表单。登录后提示用户或 注册以存储他们的凭据以供将来自动使用 身份验证。

https://developers.google.com/identity/smartlock-passwords/android/

【讨论】:

【参考方案3】:

由于 Android 和 iPhone 类手机通常会使用数据套餐运行,因此我建议您将键值对保存到集中式服务器中。当应用程序完成卸载和安装过程时,只需将其与您的服务器重新同步即可。

【讨论】:

我想这样做,但我必须以某种方式识别用户。我不想让用户选择用户名,而是自动选择用户 ID,然后将其用于重新同步,但卸载后该 ID 也会丢失... 正如 Ravi Vyas 所说,您可以通过 IMEI 识别手机。电话和用户之间存在一对一的关系很可能是一个安全的假设。 当然,除了那些喜欢在街区拥有最新手机并在 ebay 上出售旧手机的人,因为他们没有被一些奇怪的计划所束缚【参考方案4】:

是的。首选项是持久的,并且将在正常的应用程序升级后继续存在。

【讨论】:

偏好设置将无法在重新安装后继续存在。 当然...如果您卸载应用程序,它将删除所有相关数据。否则将需要对“卸载”进行松散的定义。 太糟糕了...有时您希望某些东西能够保留下来,例如存档游戏、帐户数据等。如果您卸载桌面应用程序,这些东西也不会被卸载 虽然我不同意在用户明确卸载应用程序时保留数据的想法,但您可以明确写入 SD 卡。 @Janusz 您必须记住您正在使用手机,而不是台式电脑。人们普遍认为手机应用程序比桌面应用程序更简单,并且不想担心清理您的应用程序隐藏在他们设备上的文件

以上是关于Android中是不是有类似iPhone的钥匙串?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 上是不是有与 iOS 的钥匙串等效的用户凭据?

苹果密码钥匙串在哪里

如何在 iPhone 钥匙串中建立 SecIdentityRef? (没有 .p12)

如何查看 iPhone 模拟器的钥匙串

使用 iphone sdk 在钥匙串中保存时出错

Iphone 将信用卡信息保存在钥匙串中或使用密码学? [关闭]