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

使用新的Google Drive API检索帐户名

孟承嗣
2023-03-14

我为Google Play服务设置了授权流程,如下所述https://developers.google.com/drive/android/auth

现在,用户已经授权了应用程序,我想检索帐户名。但是我在API中找不到任何方法(http://developer.android.com/reference/gms-packages.html)这将很有帮助。

共有3个答案

萧业
2023-03-14

看起来数据意图始终为空:(

public void startResolutionForResult(Activity var1, int var2) throws SendIntentException {
    if(this.hasResolution()) {
        var1.startIntentSenderForResult(this.mPendingIntent.getIntentSender(), var2, (Intent)null, 0, 0, 0);
    }
}

代码来自ConnectionResult.class

谭仰岳
2023-03-14

>

  • 检查用户是否签名

    GoogleSignInClient mGoogleSignInClient;
        private void setupAuthorization() {
            GoogleSignInOptions signInOptions =
                    new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                            .requestEmail() // add it if you want to user email 
                            .requestScopes(Drive.SCOPE_FILE)
                            .build();
            mGoogleSignInClient = GoogleSignIn.getClient(this, signInOptions);
            mGoogleSignInClient.silentSignIn().addOnSuccessListener(googleSignInAccount -> {googleSignInAccount.getEmail()}).addOnFailureListener(e -> {});
    }
    

    如果您想在登录后获取电子邮件和姓名

    @覆盖受保护的uluonActivityResult(最终int请求代码,最终int结果代码,最终意图数据){super.onActivityResult(请求代码,结果代码,数据);开关(请求代码){caseREQUEST_CODE_DRIVE_SIGN_IN: Log. i(TAG,“登录请求代码"); // 用户登录后调用。if(结果代码==RESULT_OK){Log. i(TAG,“登录成功."); // 使用最后登录的帐户,因为它已经有一个驱动器范围。GoogleSignInAccount googleSignInAcult=GoogleSignIn.getLastSignedInUser(this);googleSignInAccount.getEmail();mDriveClient=Drive.getDriveClient(this,GoogleSignIn.getLastSignedInUser(this)); // 构建一个驱动器资源客户端。mDriveResourceClient=Drive.getDriveResourceClient(this,GoogleSignIn.getLastSignedInUser(this));}中断;}}

    详情可在此处找到

  • 洪俊拔
    2023-03-14

    我假设您已经有了QUICKSTART或DEMO或类似的东西,所以我将参考这两个示例。在BaseDemoActivity中。java代码,您会注意到连接失败时会调用帐户选择,

    @Override public void onConnectionFailed(ConnectionResult result) {
      ...
      result.startResolutionForResult(this, REQUEST_CODE_RESOLUTION);
      ...
    }
    

    ... 然后返回onActivityResult()。我只需抓取意图数据并获取KEY\u ACCOUNT\u名称,它就是所选的电子邮件。下面的代码是从演示的BaseDemoActivity修改而来的。java(我上面提到过)。

    @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
      switch (requestCode) {
        case REQUEST_CODE_RESOLUTION:
        if ((resultCode == RESULT_OK) && (data != null) && (data.getExtras() != null ))
          // user selected account, get it
          String email = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
        else
          finish();    // user cancelled selection, an easy solution
        break;
      }
    
     类似资料:
    • 我有这个应用程序,它从数据库中获取用户数据,使用他们登录的用户名。一旦他们登录到检索他们的帐户信息的页面,用户名就会被传递。应用程序崩溃了,说检索信息是错误的,有人能帮忙吗? 数据库代码 要检索数据的代码

    • 我正在尝试构建一个使用数据库的应用程序,允许用户以管理员或员工身份登录 管理员几乎没有选项: 添加新员工, 列出所有员工和 为选定员工添加待办事项 受雇者 登录时显示待办事项 我遇到的第一个问题是: 我应该为所有记录(员工)只创建一个表吗 第二个问题是,我不知道如何为成功登录的用户显示项目列表。如何访问登录用户的数据?

    • 问题内容: 如果我有一个具有以下结构和数据的表: 我将使用哪种查询来获得以下结果(随后的说明): 如你看到的: 每个仅返回一行。 最高的那一行是返回的那一行。 是否有一种 无需 使用子查询即可完成此操作的方法?该程序经过的关系代数术语中是否有名称? 问题答案: 该查询称为逐组最大值,它(至少在MySQL中)可以通过子查询实现。例如: 在sqlfiddle上看到它。

    • 我正在尝试使用Active Merchant和active_paypal_adaptive_paymentgem集成Paypal Adaptive结账。在用户注册期间,用户需要注册他/她的PayPal帐户才能在交易期间收到付款。 我已经为activemerchant设置了所有凭据。在paypal中注册用户帐户时,我遇到以下错误。 您正在登录此事务的API调用方的帐户。请更改您的登录信息,然后重试。

    • 问题内容: 我有此数据: 代码(对于SQL Server 2005): 我想为每个名称获取具有最新DATE的ID。像这样: 实现此目的最优雅的方法是什么? 问题答案: 尽量避免使用保留字(和模糊的列名),例如…

    • 我正在使用python和boto3列出我的组织拥有的资源。我列出了主帐户中的资源,没有问题,但我还需要列出子帐户中的资源。我可以得到孩子的账号,但基本上就是这样。 有什么帮助吗?