繁体   English   中英

Android Google Drive SDK:保存到应用程序文件夹

[英]Android Google Drive SDK: Saving to App Folder

对于我当前的项目,我想允许用户创建一个sqlite数据库文件并让他们输入一些内容。 然后,用户可以选择登录其Google云端硬盘帐户并上传此文件。 之后,在用户进行进一步编辑之后,将上载新的数据库文件以替换旧文件。 最后,如果用户有多个设备,则应从google驱动器下载数据库,并替换存储在设备上的现有文件。

目前,我已经成功设置了Google Drive SDK身份验证,并且可以使用自己的帐户登录该应用。

我的主要问题是,当我选择按下同步按钮时,如何将sqlite数据库文件上传到APP FOLDER? (当用户需要同步时,应调用此方法)

此外,如何将sqlite数据库文件上传到APP FOLDER?

您的问题有点笼统,但我会尽力向您指出正确的方向。

首先,您必须决定是使用REST Api还是GDAA 两者都将完成相同的工作(实际上,现在GDAA的功能要窄一些,但您的情况会做到)。 最大的不同是GDAA将为您处理在线/离线状态,而在REST Api中,您必须实现某种非UI线程(同步服务)同步。 此外,使用GDAA时,您还必须注意一些延迟问题。

接下来,上传SQLite数据库的过程与任何其他二进制数据流相同。

  • 抓取“ xxx.db”文件,制作输出流(或byte []缓冲区),并创建一个包含title + mimetype元数据的GooDrive文件,将该流推送到其内容中,然后以一种愉快的方式发送。 标准文件夹和应用程序文件夹之间的唯一区别是文件的父文件夹。

  • 您将获得一个ID,随后可以使用该ID将文件下载到设备。 或者,您可以使用按元数据搜索(在您的情况下为标题)来获取此ID。 同样,它作为输入流出现,您将其转储到设备上的“ xxx.db”文件中。

问题的第二部分涉及多个设备。 所有api都不会通知您有关GooDrive的更改,因此您必须实施以下两种策略之一:

1 /轮询(哎呀),最好在系统为您提供同步间隔的同步服务中使用。

2 /向感兴趣的设备/用户广播了GCM消息(不是微不足道的,而是高效的……又性感)。

SO 29030110SO 22874657中描述了将多个设备与GDAA一起使用时必须意识到的另一个陷阱。

如果您决定使用这2个api,我将为RESTGDAA维护基本的CRUD实现示例 GDAADemo还具有使用app文件夹的选项。

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM