2

有没有人设法让 Android 的 Google Drive Notepad 示例工作?我按照 Google 开发人员页面中的说明进行操作,但无法收到启动 Google Play 服务对话框以进行授权的通知。

应用程序按预期启动,方法何时启动

credential.getToken();

被调用,UserRecoverableAuthException引发异常。我希望会显示一个授权对话框,但没有任何反应。我从状态栏中拉下通知列表,点击此应用程序创建的通知,再次没有任何反应。

当我点击“最近使用的应用程序”按钮时,我可以在列表中看到“Google Play 服务”,但它的内容为空(空白和黑色)。点击它什么也没做,除了我被带回我的主屏幕。

对此有任何想法吗?

我尝试了另一个示例应用程序“快速启动驱动器”,这个应用程序按预期工作。正如我所料,出现了一个授权对话框。

更多信息,目标设备是运行 OS 4.2.2 的 Nexus 7。

非常感谢。

4

3 回答 3

0

要授权 Google Drive API,您必须捕获 UserRecoverableException 并触发意图以获得授权对话框。

  try{
         .... 

  } catch (UserRecoverableAuthIOException e) {
          Intent intent = e.getIntent();
         startActivityForResult(intent, REQUEST_AUTHORIZATION_FOLDER);
  }
于 2013-04-19T12:29:32.027 回答
0

Gabriele Mariotti,您的解决方案似乎更好,但在这种情况下无法使用。确实,该类不是一个活动,并且不能调用 startActivityForResult 方法。

于 2013-04-19T12:54:56.910 回答
0

我有同样的问题,我解决了:

credential.setSelectedAccountName(accountName);
AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
Account[] accounts = accountManager.getAccountsByType("com.google");
Account account = null;
for(Account a : accounts){
    if(a.name.equals(accountName)){
        account = a;
        break;
    }
}

if(account != null){
    String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/drive";
    accountManager.getAuthToken(account, AUTH_TOKEN_TYPE, null, true, null, null);

    service = getDriveService(credential);
}
于 2013-04-19T11:59:42.977 回答