示例项目在Android中以编程方式备份​​Google Drive上的Sqlite文件和照片

时间:2016-05-22 10:58:49

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

我正在编写一个具有即时通讯功能的应用程序。用户可以在IM功能中写入文本或共享图像。当图像存储在设备中时,图像的文本数据和文件名存储在sqlite文件中

由于我的服务器无法保留数据,用户在切换到新设备时无法获取聊天记录。通过whatsapp,他们允许用户定期将聊天记录和图像备份到Google云端硬盘,并从驱动器中获取数据,如下图所示。

enter image description here 当我去自己的谷歌驱动器时,我会发现“Whatsapp”已连接到我的谷歌硬盘,如下所示。

enter image description here 我不熟悉Android中的Google Drive API,我想以与Whatsapp相同的方式备份我的sqlite数据库和图像。我知道几乎没有关于将sqlite数据库备份到Google云端硬盘的问题,但它似乎只包含部分代码,这使初学者很难理解。

github上是否有任何示例项目,有关stackoverflow或教程的问题可以让我学习如何在Android中以编程方式逐步备份sqlite数据库和图像

此外,我很惊讶地看到只有whatsapp连接到我的Google云端硬盘,但没有更多其他应用,所以我不知道第三方开发者是否会拥有相同的Google访问权限以与Whatsapp相同的方式驱动并完成备份。

2 个答案:

答案 0 :(得分:4)

你见过https://github.com/googledrive/android-demos吗? 我想你需要关注"在App Folder中创建一个文件"将sqlite文件保存在用户隐藏的AppData文件夹中。 要恢复文件,您可以查询AppData文件夹(确保在查询之前调用requestSync()以确保缓存是最新的。)

答案 1 :(得分:3)

这当然可行。您需要以编程方式了解如何upload files to Google Drive

github上是否会有任何示例项目,有关stackoverflow的问题或教程可以让我学习如何逐步在Android中以编程方式备份​​sqlite数据库和图像?

有几个样本如:

要上传图片,请注意您将使用image mimetype图像/ png表示.png和图像/ jpeg表示.jpg文件。 要将sql数据库上传到云端硬盘,请参阅代码段from this sample

 String mimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType("db");
        MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
                .setTitle(GOOGLE_DRIVE_FILE_NAME) // Google Drive File name
                .setMimeType(mimeType)
                .setStarred(true).build();
        // create a file on root folder
        Drive.DriveApi.getRootFolder(api)
                .createFile(api, changeSet, result.getDriveContents())
                .setResultCallback(backupFileCallback);