标签: google-drive-android-api

使用Google Drive API制作文件的本地副本

我想使用Google Drive android Api在Google云端硬盘上制作".ppt"文件的本地副本(外部存储).

我正在读一个字节并将其写入我的本地文件.但是当我试图打开它时显示该文件已损坏.请帮我解决我的问题.

final DriveFile file = Drive.DriveApi.getFile(getClient(), fileid);
final Metadata[] metadata = new Metadata[1];

file.getMetadata(getClient())
.setResultCallback(new ResultCallback<DriveResource.MetadataResult>() {
    @Override
    public void onResult(DriveResource.MetadataResult metadataResult) {
        metadata[0] = metadataResult.getMetadata();
        L.b(EditorWindow.this, metadata[0].getMimeType(), 0);
    }
});

file.open(getClient(), DriveFile.MODE_READ_ONLY, null)
.setResultCallback(new ResultCallback<DriveApi.DriveContentsResult>() {
    @Override
    public void onResult(DriveApi.DriveContentsResult result) {
        if (!result.getStatus().isSuccess()) {
            L.c("Error in creating new file");
            return;
        }
        DriveContents contents = result.getDriveContents();
        String filename = metadata[0].getTitle();
        File localFile = new File(Environment.getExternalStorageDirectory(), filename);
        OutputStream out = null;
        InputStream in = null;
        try …
Run Code Online (Sandbox Code Playgroud)

android google-api google-api-java-client google-drive-android-api

4
推荐指数
1
解决办法
554
查看次数

将sqlite数据库存储到谷歌驱动器

我尝试了许多示例,但没有找到任何好的解决方案。

我想将我的应用程序的数据存储在sqlite数据库中,然后将其与安装该应用程序的用户的google驱动器帐户进行同步。

还有一个按钮,将显示来自Google驱动器的数据,用户可以编辑和更新数据,以便将更新后的数据存储在Google驱动器中。我是Android开发的新手,请帮助我。

我也应用了以下示例,但未成功。 https://github.com/seanpjanson/GDAADemo 使用GDAA(适用于Android的Google Drive Api)创建/编辑/检索DB文件 Google Drive Android API中DriveId.getResourceId()的意外结果 https://github.com/googledrive/ android-quickstart

谢谢

sqlite android google-drive-android-api

4
推荐指数
2
解决办法
8476
查看次数

协作者仍可在 Google 云端硬盘中访问已删除的文件。我怎样才能完全删除它?

当我从 Google 驱动器中删除其他人与我共享的文件时,它向我显示了一条消息,例如“协作者仍然可以访问一个已删除的文件”。

它不再出现在该文件夹中,但会显示在“与我共享”中吗?我怎样才能彻底删除它?

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

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

在 Android 中迁移到最新的 Google Drive API 时出错 - 已超出未经身份验证使用的每日限制。继续使用需要注册

应用程序发布在 Play 商店中,它使用“应用程序数据文件夹”使用Drive API进行备份-恢复。一切正常。但是,根据 Google 的公告,该 API 即将在 2019 年 12 月 6 日被拒绝。因此,为了支持现有用户,我一直根据迁移指南官方示例应用程序迁移到最新的 API 。

我可以使用下面的代码(来自官方链接)成功进行身份验证。

GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                                         .requestEmail()
                                         .requestScopes(new Scope(DriveScopes.DRIVE_APPDATA))
                                         .build();
GoogleSignInClient client = GoogleSignIn.getClient(this, signInOptions);

// The result of the sign-in Intent is handled in onActivityResult.
startActivityForResult(client.getSignInIntent(), REQUEST_CODE_SIGN_IN);
Run Code Online (Sandbox Code Playgroud)

我也在使用正确的范围 - DriveScopes.DRIVE_APPDATA如官方文档中所述。

我还在里面看到了“电子邮件”和“授予范围”的正确值 onActivityResult()

if (requestCode == REQUEST_CODE_SIGN_IN && resultCode == RESULT_OK) {

   GoogleSignIn.getSignedInAccountFromIntent(data).addOnSuccessListener(new OnSuccessListener<GoogleSignInAccount>() {
                @Override
                public void onSuccess(GoogleSignInAccount googleSignInAccount) {

                    Log.e("TAG", "Email - " …
Run Code Online (Sandbox Code Playgroud)

android oauth-2.0 google-drive-api google-drive-android-api

4
推荐指数
1
解决办法
531
查看次数

有没有办法使用Google Drive API获取文件名?

假设我使用Google Drive API来选择要打开的文件.我有这样的代码:

// Getting the drive ID for the file
        DriveId driveId = (DriveId) data
                .getParcelableExtra(OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);

        // Getting the selected file
        DriveFile googleDriveFile = Drive.DriveApi.getFile(googleApiClient,
                driveId);

        googleDriveFile.open(googleApiClient, DriveFile.MODE_READ_ONLY,
                null).setResultCallback(
                new ResultCallback<DriveContentsResult>() {
                    @Override
                    public void onResult(DriveContentsResult result) {
                        if (result.getStatus().isSuccess()) {
Run Code Online (Sandbox Code Playgroud)

有什么办法让我得到这个文件的文件名吗?(不是驱动器ID,而是它的实际名称?)

我正在尝试验证所选文件(通过检查其名称中的类型),除了获取名称之外,我想不出一种方法可以做到这一点.类型是.cblite,Couchbase Lite数据库文件.通常我只是按MIME类型过滤驱动器选择器,但.cblite(据我所知)不是这些选项之一.相反,我试图通过文件名验证.

有没有办法做到这一点?(或者有没有办法通过杂项/未识别的类型过滤MIME类型?)

android mime-types google-drive-android-api

3
推荐指数
1
解决办法
2678
查看次数

Google Drive Android API - 无效的DriveId和Null ResourceId

我一整天都没有运气就与这段代码作斗争.我开始关注Google的代码示例.

问题是文件夹是成功创建的但是在onResult()中,我总是得到一个无效或不完整的DriveId或resourceId.这意味着我无法在我创建的文件夹中创建文件.这是我正在使用的代码:

public class CreateFolderActivity extends BaseDemoActivity {

@Override
public void onConnected(Bundle connectionHint) {
    super.onConnected(connectionHint);
    MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
            .setTitle("MyAppFolder").build();
    Drive.DriveApi.getRootFolder(getGoogleApiClient()).createFolder(
            getGoogleApiClient(), changeSet).setResultCallback(callback);
}

final ResultCallback<DriveFolderResult> callback = new ResultCallback<DriveFolderResult>() {
    @Override
    public void onResult(DriveFolderResult result) {
        if (!result.getStatus().isSuccess()) {
            showMessage("Error while trying to create the folder");
            return;
        }

        // this value is always invalid with ending == operators
        Log.d("DRIVEID", "Created a folder: " + result.getDriveFolder().getDriveId());
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

每当我运行此代码时,我会得到以下不完整的ID:

CAESABi2VyCCzdWOuVMoAQ==
Run Code Online (Sandbox Code Playgroud)

我不知道这里发生了什么!

我已经谷歌了,并阅读添加听众来听取完成事件,但似乎没有一个工作.

我在这方面看到了几乎类似的问题,但它们都不适用于我.

在应用程序创建后,我通过浏览器手动复制FolderId,然后粘贴到我的android代码,应用程序成功创建了一个文件.但这不是事情应该如何运作. …

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

3
推荐指数
1
解决办法
800
查看次数

Android/GoogleDrive图片上传

首先我是法国学生,请原谅我的英语..

我已经启动了一个拍照的应用程序,现在我希望它能在GoogleDrive上保存这些照片.我跟着谷歌教程,我现在有一个我无法解释的错误,我不知道如何解决它:

400 Bad Request {"code":400,"errors":[{"domain":"global","location":"fields","locationType":"parameter","message":"无效的字段选择项" ,"reason":"invalidParameter"}],"message":"无效的字段选择项"}

此链接可能有助于https://developers.google.com/drive/v3/web/handle-errors,即使我真的不明白它是如何帮助的.

当然,我做了google问的所有事情:https://developers.google.com/drive/quickstart/android

这是存在错误的活动.

我希望你能理解我的问题,如果你这样做并帮助解决它,我只需要说谢谢(即使你刚读完)..

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential;
import com.google.api.client.googleapis.extensions.android.gms.auth.GooglePlayServicesAvailabilityIOException;
import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;

import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.util.ExponentialBackOff;

import com.google.api.services.drive.DriveScopes;

import com.google.api.services.drive.model.*;

import android.accounts.AccountManager;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.text.method.ScrollingMovementMethod;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView; …
Run Code Online (Sandbox Code Playgroud)

java android google-drive-android-api

3
推荐指数
1
解决办法
552
查看次数

如何在Java中通过Google Drive API V3获取文件的直接下载链接

如何在Java中通过Google Drive API v3获取文件的直接下载链接?

大家好,我已经在Android的Google Drive Api上工作了一周,我同时使用了Android Drive SDK和Java的Drive Rest Api,但找不到如何直接获取文件下载链接的方法(所有人都可以阅读)。我已经尝试过如何获取要在Android中下载的Google驱动器文件的网址,但是它不起作用。请帮我。谢谢。

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

3
推荐指数
1
解决办法
6089
查看次数

Google云端硬盘应用数据文件夹的限制是多少?

Google云端硬盘允许存储数据并在设备之间共享.但是我想在这里存储用户的照片.我在" 存储应用程序数据"网页上找不到有关限制的任何信息.

所以.有关Google云端硬盘应用数据文件夹大小限制的任何信息?

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

3
推荐指数
1
解决办法
519
查看次数

Google Drive Android API OAuth身份验证问题 - onActivityResult返回"0"

我只是想为Android Drive API进行身份验证.

我从Android Studio生成签名APK.该帐户经过身份验证,Google Drive API身份验证与此生成的APK完美配合.

现在,当我将相同的APK上传到Play Console中的内部测试时.然后验证失败.

__现在这就是我完成这一切的方式___

1)在Android Manifest中添加了以下内容

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)

2)像这样实现了身份验证

public abstract class AuthActivityStackOverflow extends BaseActivity {

    protected static final int GOOGLE_SIGN_IN_REQUEST_CODE = 1;

    public void signIn() {
        startActivityForResult( getGoogleSignInClient().getSignInIntent(), GOOGLE_SIGN_IN_REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == GOOGLE_SIGN_IN_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                onSignInSuccess(GoogleSignIn.getLastSignedInAccount(this), requestCode);
                showMessage("Account Linked Successfully");
            } else { onSignInFailed(); }
        }
    }

    protected GoogleSignInClient getGoogleSignInClient(){
        GoogleSignInOptions signInOptions …
Run Code Online (Sandbox Code Playgroud)

java authentication android oauth-2.0 google-drive-android-api

3
推荐指数
1
解决办法
254
查看次数