Android - 从另一台设备访问 Google Drive appdata 文件夹,但应用相同
Android - access Google Drive appdata folder from another device, but same app
我的应用程序设置为允许将备份保存到 Google Drive appdata 文件夹。这一切都在同一台设备上运行良好。当我备份时,删除应用程序的数据,然后恢复它一切正常。
但是,当我尝试在一台设备上备份,然后在另一台设备上安装并尝试恢复时,没有找到任何文件。当我在原始设备上卸载应用程序,在同一设备上重新安装它并尝试恢复时,情况也是如此。尽管我在登录 Google Drive 时看到 appdata 文件夹中有文件,但这两种情况都会导致找不到文件。
我在某处读到,您必须使用文件的 RESOURCE_ID 而不是 DRIVE_ID 才能在设备之间工作,因为 DRIVE_ID 因设备而异。然而,我看到如何获得 RESOURCE_ID 的唯一方法是使用 driveId.getResourceId(),我无法从另一台设备获得正确的 DRIVE_ID。
tl;dr:我应该如何从另一个 device/installation 创建的 appdata 文件夹中检索正确的文件?
我的应用程序中也有一个数据库备份选项。我使用新的 Google 驱动器 Android Api 实现了它,更重要的是,它在一台设备和另一台设备之间运行良好。
以下是我的做法和建议:
- 在向 Google 驱动器读取或写入任何内容之前,请调用 requestSync 以确保所有内容都已同步并且是最新的(查看如何使用它 here)。
- 使用查询而不是标识符按名称检索文件。由于 Google Drive 允许多个文件同名,请按日期排序查询并使用最新的。
- 为避免创建多个同名备份文件,请使用查询查找备份文件是否已存在于 Google 驱动器上,如果存在,则打开并覆盖它。
- 我猜您不会喜欢这一点:我建议暂时不要使用 Appfolder...。 Google 已确认在卸载和重新安装应用程序时可能存在一些同步问题。我也尝试在我的应用程序中使用 Appfolder 但没有成功,最后我最终在 Google Drive 中创建了一个普通文件夹。话虽如此,您可以在采用此建议之前尝试前三个建议。
希望以上几点对您的实施有所帮助。如果您还需要什么,请告诉。
我的应用程序设置为允许将备份保存到 Google Drive appdata 文件夹。这一切都在同一台设备上运行良好。当我备份时,删除应用程序的数据,然后恢复它一切正常。
但是,当我尝试在一台设备上备份,然后在另一台设备上安装并尝试恢复时,没有找到任何文件。当我在原始设备上卸载应用程序,在同一设备上重新安装它并尝试恢复时,情况也是如此。尽管我在登录 Google Drive 时看到 appdata 文件夹中有文件,但这两种情况都会导致找不到文件。
我在某处读到,您必须使用文件的 RESOURCE_ID 而不是 DRIVE_ID 才能在设备之间工作,因为 DRIVE_ID 因设备而异。然而,我看到如何获得 RESOURCE_ID 的唯一方法是使用 driveId.getResourceId(),我无法从另一台设备获得正确的 DRIVE_ID。
tl;dr:我应该如何从另一个 device/installation 创建的 appdata 文件夹中检索正确的文件?
我的应用程序中也有一个数据库备份选项。我使用新的 Google 驱动器 Android Api 实现了它,更重要的是,它在一台设备和另一台设备之间运行良好。
以下是我的做法和建议:
- 在向 Google 驱动器读取或写入任何内容之前,请调用 requestSync 以确保所有内容都已同步并且是最新的(查看如何使用它 here)。
- 使用查询而不是标识符按名称检索文件。由于 Google Drive 允许多个文件同名,请按日期排序查询并使用最新的。
- 为避免创建多个同名备份文件,请使用查询查找备份文件是否已存在于 Google 驱动器上,如果存在,则打开并覆盖它。
- 我猜您不会喜欢这一点:我建议暂时不要使用 Appfolder...。 Google 已确认在卸载和重新安装应用程序时可能存在一些同步问题。我也尝试在我的应用程序中使用 Appfolder 但没有成功,最后我最终在 Google Drive 中创建了一个普通文件夹。话虽如此,您可以在采用此建议之前尝试前三个建议。
希望以上几点对您的实施有所帮助。如果您还需要什么,请告诉。