Android - 从其他设备访问Google云端硬盘appdata文件夹,但相同的应用

时间:2015-01-12 09:49:13

标签: android google-drive-api google-drive-android-api

我的应用设置为允许将备份保存到Google云端硬盘应用数据文件夹。它在同一台设备上运行良好。当我进行备份时,删除应用程序的数据,然后将其全部恢复。

但是,当我尝试在一台设备上进行备份,然后安装在另一台设备上并尝试恢复时,找不到任何文件。当我在原始设备上卸载应用程序,在同一设备上重新安装并尝试还原时,也是如此。这两种情况都导致没有找到文件,尽管我在登录Google云端硬盘时看到appdata文件夹中有文件。

我在某处读过您必须使用RESOURCE_ID而不是文件的DRIVE_ID才能在设备之间工作,因为DRIVE_ID将因设备而异。但是,我看到如何获取RESOURCE_ID的唯一方法是使用driveId.getResourceId(),我无法从其他设备获取正确的DRIVE_ID。

tl; dr:我应该如何从另一台设备/安装创建的appdata文件夹中检索正确的文件?

1 个答案:

答案 0 :(得分:11)

我的应用程序中也有一个数据库备份选项。我使用新的Google Drive Android Api实现了它,更重要的是,从一台设备到另一台设备完全正常。

以下是我的表现以及我的建议:

  1. 在向Google云端硬盘阅读或撰写任何内容之前,请致电requestSync以确保所有内容都已同步并保持最新状态(请参阅如何使用它here)。
  2. 使用查询而不是标识符按名称检索文件。由于Google云端硬盘允许多个同名文件,请按日期订购查询并使用最新版本。
  3. 要避免创建具有相同名称的多个备份文件,请使用查询查找备份文件是否已存在于Google云端硬盘中,如果已存在,请将其打开并覆盖它。
  4. 这就是我猜你不会喜欢的一点:我建议暂时不要使用Appfolder。谷歌已经承认在卸载和重新安装应用时可能存在一些同步问题。我试图在我的应用程序中使用Appfolder但没有成功,我最终在Google Drive中创建了一个普通的文件夹。话虽如此,你可以在采用这个建议之前尝试前三个建议。
  5. 我希望这些观点对您的实施有所帮助。如果您还需要其他任何东西,请告诉。