微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让Android将应用程序数据存储在用户的Google帐户中,以便在安装到新设备上后将其还原

如何解决如何让Android将应用程序数据存储在用户的Google帐户中,以便在安装到新设备上后将其还原

我们正在Web,iOS和Android应用上实现loginless system,该功能允许用户拥有持久身份,而无需任何注册/登录流程。

登录的关键部分是依靠iOS和Android将我们的应用程序数据永久存储在用户的iCloud / Google帐户中,以便在每种情况下为用户自动恢复数据:

  • (i)退出并重新打开该应用程序(在Android中为SharedPreferences,在iOS中为UserDefaults完成)
  • (ii)在同一设备上卸载并重新安装该应用程序(在Android¹中完成key/value backup,在iOS中完成Keychain + NSUbiquitouskeyvalueStore
  • (iii)基于旧设备的备份来设置新设备(在Android¹中为key/value backup,在iOS中为UserDefaults + Keychain + NSUbiquitouskeyvalueStore完成)
  • (iv)在与用户以前使用过该应用程序的iCloud / Google帐户登录的全新设备上安装该应用程序(在iOS中由NSUbiquitouskeyvalueStore完成)

我们剩下的唯一情况就是弄清楚如何完成(iv)Android的工作。在这种情况下,即使不是从旧设备的备份中设置了全新设备,Android中的key/value backup也会还原数据吗?

我们在研究过程中发现了Cloud FirestoreAccountManager的存在,但是Cloud Firestore中的数据似乎是基于设备加密的,因此无法完成(iv),而且似乎AccountManager需要用户的许可才能通过android.permission.GET_ACCOUNTS来请求其帐户,此外,无登录的整个设计旨在不要求用户提供任何个人身份信息。我们对这些结论是否正确,还是可以使用Cloud Firestore完成(iv)?在Android中,还有什么可以用来完成(iv)的事情?

¹我们决定使用键/值备份而不是自动备份,因为备份的频率大于自动备份的频率。查看有关差异in Android's documentation的更多信息。

解决方法

关于IV点,在2018年之前,您可以使用现在已经不再使用的Android Drive Api,但是当前您可以使用Drive API v3使应用程序能够使用其驱动器中的客户空间来存储应用程序特定数据。

This folder is only accessible by your application 
and its contents are hidden from the user and from other Drive apps.
,

如果android:allowBackup属性设置为true,则共享的首选项应从先前的设备恢复。据我所知,如果您将手机备份到Google(云端硬盘),则可以使用此功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?