如何在Android即时应用程序中存储数据并在已安装的应用程序中恢复它

时间:2017-08-02 09:18:19

标签: android android-instant-apps

据谷歌开发即时应用程序

“最佳做法” “在安装应用后保持用户状态”

https://developer.android.com/topic/instant-apps/ux-best-practices.html#keep_user_state_after_app_installation

我尝试在即时应用和已安装的应用中使用内部存储,但它不起作用,因为有不同的路径:

  • 即时应用:/data/user/0/com.google.android.instantapps.supervisor/files/hosted/package_name/files
  • 已安装app:/ data / user / 0 / package_name / files

当然,外部存储也不起作用,因为即时应用可以获得它的许可。

是否有人知道或有想法如何解决这个问题,应根据Google“最佳做法”解决?

4 个答案:

答案 0 :(得分:2)

我能想到的唯一选择是以某种方式在服务器上保存该信息,当用户安装应用程序时,将其恢复并继续他离开的位置。 这是Google为带有购物车的应用程序指定的内容(例如),在安装后,用户可以继续购物而不会丢失他可能已经选择的任何文章。另请记住,通过SmartLock,您可以在设备上保存帐户,并在以后的已安装应用程序中恢复。 希望这有帮助!

答案 1 :(得分:2)

从即时到已安装的应用程序的存储转移会自动在O +上进行,但对于低于O的平台,您需要使用此API。请参阅Android Instant Apps常见问题解答:“如何将数据从即时应用程序传输到已安装的应用程序?”

https://developer.android.com/topic/instant-apps/faqs.html

  

对于运行Android 8.0(API级别26)或更高版本的设备,即时   安装APK时会自动传输应用程序的数据   开始。对于运行Android 7.1.1(API级别25)或更低版本的设备,   Google Play服务中的呼叫兼容性API。

答案 2 :(得分:2)

您可以使用StorageApi将数据从InstantApp迁移到已安装的应用程序,示例如下:google sample storage api。只是访问 InstantApps.getInstantAppsClient(this).instantAppData,您就拥有了,addOnSuccessListener,您就可以开始了。

答案 3 :(得分:0)

我一直在使用couchbase lite将我的数据保存在couchdb服务器上,然后编写过滤器,然后使用同步网关从服务器运行pullReplication,您可以查看它是如何工作的here。然后在Android应用程序中,我使用SharedPreferences检查其应用程序是否首先运行然后运行同步