我正在开发一个为用户存储商品的应用,用户可以选择与Google云端硬盘同步。每个项目由文本和图像组成。
我目前的方法是将每个项目的.json和.jpg文件保存在设备内部,然后从Drive API调用onConnected后,将这些文件上传到Google云端硬盘中用户的APP文件夹。与删除类似,我会创建一个标记为' foo'已删除,然后尝试查看文件' foo.jpg'和' foo.json'存在于Drive中,并相应地删除。
这对我来说现在很有用,但是由于googleApiClient错误我常常让应用程序崩溃,我意识到这不是一种有效的方法。所以我想知道你们中是否有人知道更有效的方法呢?
在理想世界中,我希望有这样的东西:我将每个项目的文件保存到设备内部,并且库会跟踪这些文件并相应地同步驱动器。
感谢您的建议!
答案 0 :(得分:0)
基于您所指的“onConnected'和' googleApiClient',我认为您使用GDAA而不是REST Api。
在处理GooDrive时,您应该重新考虑使用文件名的想法。它们在GooDrive中并不是唯一的,并且GDAA的延迟迟早会导致存在多个同名文件的问题,这些文件由无处不在的构造创建:
if file.name not exist
create file.name
使用APP文件夹的事实使得调试变得更加困难,因为您没有通过查看http://drive.google.com获得反馈。
您应该通过DriveId(如果仅使用单个Android设备)或ResourceId(如果您打算将ID发送/广播到其他设备/应用)来引用您的文件。如果您决定使用ResourceId,请确保处理由delayed GDAA's promotion对象引起的延迟问题。
这当然不能完全涵盖您的问题,但无论如何都无法正确回答。
祝你好运