当前位置: 首页 > 知识库问答 >
问题:

Android打开具有指定帐户意图的google drive

龚永新
2023-03-14

我在Google drive中设置了多个帐户

account1@gmail.comaccount2@gmail.com

我想通过意图打开带有account2@gmail.com的谷歌驱动器。我可以使用下面的功能打开谷歌驱动器应用程序

fun startOpenGoogleDriveApp() {
    try {
        val intent = activity.packageManager.getLaunchIntentForPackage("com.google.android.apps.docs")
        startActivity(intent)
    }catch (e:Exception){
        e.printStackTrace()
    }
}

尝试使用intent.putExtra(Intent.EXTRA_USER,"account2@gmail.com"),但不起作用。

是否可以发送/指定意向附加项中的帐户?非常感谢帮助。

共有1个答案

欧桐
2023-03-14

我既不熟悉html" target="_blank">kotlin,也不熟悉您使用的方法。我要告诉你的是文件中提到的我熟悉的方式。

//Starts the sign-in process and initializes the Drive client.
    public void signIn() {
        GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(Drive.SCOPE_FILE)
                .requestScopes(Drive.SCOPE_APPFOLDER)
                .build();
        GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(this, signInOptions);
        startActivityForResult(googleSignInClient.getSignInIntent(), REQUEST_CODE_SIGN_IN);
    }

/**
 * Handles resolution callbacks.
 */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        if (resultCode == RESULT_OK) {
            initializeDriveClient(GoogleSignIn.getLastSignedInAccount(this));
        } else if (resultCode == RESULT_CANCELED) {
            Snackbar.make(findViewById(R.id.fab), R.string.sign_in_alert, Snackbar.LENGTH_SHORT).show();
        }else{
            Snackbar.make(findViewById(R.id.fab), R.string.sign_fail, Snackbar.LENGTH_SHORT).show();
        }
    }
}

/**
 * Continues the sign-in process, initializing the DriveResourceClient with the current
 * user's account.
 */
private void initializeDriveClient(GoogleSignInAccount signInAccount) {
    mDriveResourceClient = Drive.getDriveResourceClient(getApplicationContext(), signInAccount);
    mDriveResourceClient.getAppFolder().addOnSuccessListener(new OnSuccessListener<DriveFolder>() {
        @Override
        public void onSuccess(DriveFolder driveFolder) {
            onDriveClientReady();
            // CONTINUE THE TASK
        }
    });
}

abstract void onDriveClientReady();

现在,把它放在一个抽象的活动类中,然后从主活动类扩展它。

此代码是异常安全的,如果用户取消登录,您将能够终止访问ActivityResult的下一行代码。用户将显示登录选项,以选择一个帐户进行登录。如果在ActivityResult上显示结果OK,则表示他已登录。

下一行代码将尝试异步初始化DriveClient(这里我只想要appfolder,所以尝试了getAppFolder和Drive.SCOPE\u appfolder,您可以根据需要进行设置)。当驱动器客户端成功初始化时,您将从onSuccess方法获取驱动器文件夹。

依赖项

implementation('com.google.api-client:google-api-client-android:1.23.0') {
    exclude group: 'org.apache.httpcomponents'
}
implementation('com.google.apis:google-api-services-drive:v3-rev114-1.23.0') {
    exclude group: 'org.apache.httpcomponents'
}
implementation 'com.google.android.gms:play-services-auth:15.0.1'
implementation 'com.google.android.gms:play-services-drive:15.0.1'

进一步帮助和文档

  • https://developers.google.com/drive/api/v3/appdata
  • https://developers.google.com/drive/api/v3/quickstart/android
  • https://developers.google.com/drive/android/appfolder
  • https://developers.google.com/drive/android/create-file
  • https://www.numetriclabz.com/integrate-google-drive-in-android-tutorial/
  • https://console.developers.google.com/apis/credentials/wizard?api=drive.googleapis.com

注意:我总是备份我的应用程序代码。如果要查看我使用的整个类,请参见以下内容:

  • https://www.dropbox.com/s/9wphtpe3ebd62xd/LoginActivity.java?dl=0
 类似资料:
  • 我在sdcard中的某个文件夹中有一些pdf文件。我创建了一个将所有pdf显示为ListView的应用程序。当我单击任何pdf文件时,它会在officeSuite应用程序(不支持或损坏文件格式)中出现错误。代码有问题。这是代码。 //显示为ListVIew的项目代码 //打开文件的代码VIA Intent 错误: 损坏或不支持的文件格式

  • 我正在设计一个应用程序,我想在地图上显示具体的位置。我正在传递地址的,它已经放在上。以下是我的代码.. 但它给了我谷歌地图来获取方向。我知道为什么会这样,因为我在中使用了,但我不知道在特定位置使用什么..请告诉我在那里使用什么..

  • 我正在实现google驱动器使用google play服务。我从api控制台启用驱动器Api和驱动器SDK,并实现了驱动器SDK的配置设置,但是当我尝试从我的应用程序登录时,我得到以下错误,在指定帐户中签名错误。请选择不同的帐户,我添加了另一个帐户但面临相同的错误,我不知道是什么问题?我必须添加测试用户吗?但是我没有找到任何地方来测试用户。在身份验证部分(https://developers.go

  • 我补充了这样的意图: 现在它在选择器中显示dropbox应用程序,但我无法从中选择图像。它只是启动dropbox应用程序,而不选择和返回到我的应用程序的可能性。

  • 我想为三类数据绘制一个“双”条形图,并显示基于Wilcox检验的两个“双”条形图的显著性水平。 运行下面的代码,我没有看到反映在y轴上的计数,相反,所有柱都处于相同的高度。 我试图制作的情节看起来像这样:https://drive.google.com/open?id=1EndiF-sCtXFyUOAPIToRY5hqjp97b1Px 感谢您的帮助:1.编辑我的代码,使其显示实际计数值2.为绘图添