标签: google-drive-android-api

如何避免始终从Google云端硬盘加载缓存的应用数据

目前,我正在使用Google Drive Android API将我的Android应用数据存储到Google云端硬盘应用文件夹.

这是我在保存应用程序数据时正在做的事情

  1. 为当前本地zip文件生成校验和.
  2. Google云端硬盘应用文件夹中搜索,查看是否存在现有的应用文件夹zip文件.
  3. 如果有,用当前本地zip文件覆盖现有App Folder zip文件的内容.此外,我们将使用最新的校验和重命名现有的App Folder zip文件名.
  4. 如果没有现有的App Folder zip文件,请生成一个新的App Folder zip文件,其中包含本地zip文件的内容.我们将使用最新的校验和作为App Folder zip文件名.

这是执行上述操作的代码.

生成新的App Folder zip文件,或更新现有的App Folder zip文件

public static boolean saveToGoogleDrive(GoogleApiClient googleApiClient, File file, HandleStatusable h, PublishProgressable p) {
    // Should we new or replace?

    GoogleCloudFile googleCloudFile = searchFromGoogleDrive(googleApiClient, h, p);

    try {
        p.publishProgress(JStockApplication.instance().getString(R.string.uploading));

        final long checksum = org.yccheok.jstock.gui.Utils.getChecksum(file);
        final long date = new Date().getTime();
        final int version = org.yccheok.jstock.gui.Utils.getCloudFileVersionID();
        final String title = getGoogleDriveTitle(checksum, date, …
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-drive-android-api

58
推荐指数
1
解决办法
1783
查看次数

由于Android Studio的冲突,依赖性被忽略了

我正在尝试添加以下依赖项,但它是忽略的.我无法理解如何解决它请帮帮我谢谢.

依赖

 compile 'com.google.apis:google-api-services-drive:v2-rev170-1.20.0'
Run Code Online (Sandbox Code Playgroud)

Waring for ignore依赖
警告:依赖org.apache.httpcomponents:httpclient:4.0.1因调试而被忽略,因为它可能与Android提供的内部版本冲突.如果出现问题,请使用jarjar重新打包以更改类包警告:依赖org.apache.httpcomponents:httpclient:4.0.1因发布而被忽略,因为它可能与Android提供的内部版本冲突.如果有问题,请用jarjar重新打包以更改类包

android gradle google-drive-android-api

30
推荐指数
2
解决办法
3万
查看次数

当我使用queryChildren时,Android Google驱动App数据文件夹返回空

我正在使用新的Google Play服务驱动器api在我的Android应用程序中使用App文件夹实现备份和恢复数据.我按照google驱动程序开发人员指南中的说明进行操作.当我只使用一个设备时,我可以成功备份和恢复数据不要卸载并重新安装app.But当我使用两个设备或unintall并重新安装应用程序时出现问题.

场景1:我在一台设备上安装我的应用程序并将数据备份到"App文件夹"成功,我可以看到我的应用程序文件夹的数据大小在Google驱动器"管理应用程序"中更改,然后我在另一台设备上安装我的应用程序并尝试使用"从谷歌驱动器恢复"来恢复我刚在第一台设备上备份的数据.但谷歌驱动器api返回空的MetadataBuffer.

场景2:我在一台设备上安装我的应用程序并将数据备份到"App文件夹"成功,我还看到我的应用程序文件夹的数据大小在"管理应用程序"中更改.然后我卸载我的应用程序并重新安装它并尝试恢复数据我备份.同样的事情发生了.我的app文件夹中找不到文件.

我用queryChildren和listChildren尝试了api,但没有幸运.

Drive.DriveApi.getAppFolder(getGoogleApiClient())
    .queryChildren(getGoogleApiClient(), query)
Run Code Online (Sandbox Code Playgroud)

Drive.DriveApi.getAppFolder(mGoogleApiClient).listChildren(mGoogleApiClient)
Run Code Online (Sandbox Code Playgroud)

任何来自谷歌驱动团队的人都能解决问题吗?我认为这是一个非常大的bug.we仍然没有解决方法.

android google-drive-api google-drive-android-api

21
推荐指数
1
解决办法
2083
查看次数

Google云端硬盘Android API - 检查文件夹是否存在

我正在尝试使用新的Google云端硬盘Android API来确定如何检查Google云端硬盘中是否存在文件夹

我已经尝试了以下内容,认为如果找不到文件夹它会崩溃或返回null,但它不会这样做(只要它是有效的DriveId,即使文件夹已被删除).

DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), driveId));
Run Code Online (Sandbox Code Playgroud)

如果我尝试创建一个文件,我从上面的代码中得到的文件夹,它也不会崩溃?我显然很难理解这个新API是如何一起工作的,尤其是那些非常有限的教程和SO问题,我真的坚持这个,所以任何输入都将非常感激.

只是为了澄清我的问题:我在指定的Google云端硬盘文件夹中创建了一个文件,但如果该文件夹不存在(已被用户删除),我想先创建它.

android google-drive-api google-drive-android-api

16
推荐指数
1
解决办法
9809
查看次数

Google API客户端的多个实例?

我有活动A实例化GoogleApiClient,连接并开始在AsyncTask中处理可能需要几秒或几分钟.

同时,用户触发活动B,通过连接实例化自己的GoogleApiClient.

现在的问题是:能在应用已连接,同时工作GoogleApiClient的多个实例,或者我应该保持我自己的信号灯的应用程序单身?

google-drive-api google-drive-android-api

16
推荐指数
2
解决办法
8066
查看次数

有人可以为 Google Drive REST API v3 提供最新的 Android 指南吗?

我和其他许多人一直在努力设置 Google Drive REST API v3 以与 Android 应用程序一起使用。这主要是因为 Google 官方文档缺少适用于 Android 的正确快速入门指南,我们只能找到散布在周围的(过时和/或令人困惑的)信息碎片 - 但我们需要的是完整的最新指南面向初学者,让我们入门并运行,以便他们可以打开和编辑 Drive 上的文件,包括如何设置凭据、依赖项和清单。

所以我问是否有人愿意创建这样的指南,或者可以指出这样一个已经制作的指南 a) 与此处详述的最新版本的 Google Drive API REST v3 相关,b) 涵盖以上所有内容初学者需要开始的方面?

ArtOfWarfare在这里发布的指南绝对完美,正是我正在寻找的——但不幸的是,这些指南已经过时了几年。谁能提供本指南的最新版本?非常感谢你。

rest android android-studio google-drive-android-api

16
推荐指数
2
解决办法
5368
查看次数

用户数据备份到"备份"类别下的Google云端硬盘

我正在做一些关于将用户数据备份到云端硬盘的研发.用户数据意味着dbs或他们自己使用应用创建的内容.我希望这基本上可以保留数据,以防用户更改设备或将其丢弃在海洋中或其他任何地方.

我用Google搜索并找到了Application Folder API,它使用了隐藏文件夹.我检查了自己的Drive,发现了一些有趣的东西.一些应用程序正在使用应用程序文件夹来存储他们的数据; 很正常.

普通应用

但是,一些应用程序,例如WhatsApp,其数据备份专门列在"备份"类别下.

WhatsApp备份

我搜索了差异,没有找到任何东西.我想知道如何在"备份"类别下获得备份,这似乎是一个完美的选择.选择某些备份时,它还提供额外的信息和选项.

任何的想法?这两者之间可能有什么区别?如何在"备份"类别下获得备份?

更新:我认为Drive为WhatsApp备份提供了特殊处理,因此它们与电话数据备份一起单独显示.在阅读这篇近期新闻之后,我只是在猜测.请对此提供一些说明.

android google-drive-android-api

15
推荐指数
1
解决办法
726
查看次数

使用Google Drive备份和还原SQLite数据库

我已经设法在SD卡上创建我的数据库备份并从那里恢复,但意识到我的备份的目的是确保数据的安全性,在这种情况下,如果物理设备本身损坏,丢失或自发地燃烧SD卡上的备份.因此,在这种情况下将备份放在与原始备份相同的位置,坦率地说,无法实现备份的目的.

因此,我想使用Google Drive作为保存db文件更安全的地方,而且它是免费的.我已经看了谷歌的快速启动演示,我工作得很好.但我仍然不知道如何为我的案子做到这一点.

我发现了一些代码,但仍然使用了一些弃用的方法,到目前为止,我只是在省略不推荐使用的区域时设法运行它,但它只在我的Google云端硬盘中创建了一个空白的二进制文件,所以我认为不推荐使用的区域是实际上传数据库备份内容的地方.如果有人可以提供帮助,那将非常感激.

我会把它留在下面,万一有人可以用它来更好地向我解释.我还在下面标记了已弃用的方法,它已接近尾声.

public class ExpectoPatronum extends Activity implements ConnectionCallbacks, OnConnectionFailedListener {

private static final String TAG = "MainActivity";
private GoogleApiClient api;
private boolean mResolvingError = false;
private DriveFile mfile;
private static final int DIALOG_ERROR_CODE =100;
private static final String DATABASE_NAME = "demodb";
private static final String GOOGLE_DRIVE_FILE_NAME = "sqlite_db_backup";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Create the Drive API instance
    api = new GoogleApiClient.Builder(this).addApi(Drive.API).addScope(Drive.SCOPE_FILE).
            addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();
}

@Override
public void onStart() {
    super.onStart();
    if(!mResolvingError) …
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-drive-android-api

14
推荐指数
1
解决办法
2万
查看次数

适用于Android的Google Drive Rest API的文件选择器

虽然Google Drive Android API(与Google Drive Rest API分开的API)确实包含文件选择器,但Google Drive Android API未与Google Drive Rest API的所有功能集成,例如将Google文档导出为格式不同.虽然Google Drive Rest API文件选择器可用于Web应用程序,但我还没有找到适用于Android应用程序的文件.有没有人知道创建文件选择器的最佳方法,用户可以使用Google Drive Rest API从其Google云端硬盘帐户中选择文件?

android google-drive-api google-drive-android-api

14
推荐指数
1
解决办法
1658
查看次数

Google Drive使用当前活动进行整合

是否可以在不创建自己的活动的情况下与Google云端硬盘集成,而只是使用应用程序的当前活动而不会使用与Google云端硬盘相关的代码进行污染?

我有一个后台"服务"(不是Android服务 - 只是一个与UI无关的类),负责从Google云端硬盘加载一些数据.作为一项服务,它没有真正的业务是一项活动.但是,Drive集成示例具有覆盖onActivityResult以处理需要身份验证的情况.如果我的服务没有作为一项活动实施,我不确定如何掌握这些信息.

假设我可以Activity从我的"服务"中获得对当前电流的参考,我是否可以通过某种方式以完全独立的方式实施Google Drive集成?

java android google-drive-android-api

13
推荐指数
2
解决办法
486
查看次数