2011-04-02 12 views
3

我使用我的服務中的AccountManager.getAuthToken訪問Google Googledocs和Spreadsheet API。Google帳戶身份驗證器在運行時要求獲得許可

由於我從後臺執行此操作,並且不想中斷用戶,因此當需要用戶交互(使用參數boolean notifyAuthFailure)時,我允許accountManager引發通知。

正如我所料,CallBack是通過AccounManagerFuture調用的,在這種情況下,它會解析爲包含KEY_INTENT的Bundle。

「在這種情況下,你可能需要等待 直到用戶迴應,這可能 需要數小時或數天或永遠。當 用戶不會響應,並提供一個新 密碼,帳戶經理將 廣播 LOGIN_ACCOUNTS_CHANGED_ACTION意圖, 哪些應用程序可以用它來再次嘗試 」

它運作良好,當東西只有大約一個錯誤的密碼。但是我遇到了一個問題,即AccountAuthenticator在運行時要求提交併且意圖(從通知欄)啓動GrantCredentialsPermissionActivity,在用戶按下按鈕(允許或拒絕)後,不允許我知道用戶已經響應。

問題是如何知道與用戶的互動完成後再嘗試獲取AuthToken。

我cant't從GrantCredentialsPermissionActivity得到onActivityResult因爲我是從NotificationBar啓動它(而不是從我的其他活動,因爲我用的服務,同時試圖獲得令牌)

我不能在清單中指定beforehead權限,因爲據我瞭解這是一些custome權限,由google authenticator定義。

當用戶在關閉GrantCredentialsPermissionActivity後在運行時批准/拒絕對應用程序的請求權限時,它似乎沒有廣播任何意圖。 謝謝。

+0

嗨@Denis我有同樣的問題,你有沒有找到這樣的解決方法? – Franco 2015-01-18 02:41:26

回答

-1

我認爲將知道用戶交互何時完成的最佳方式是BroadCast事件並接收它。

0

只需再次檢查onResume即使權限活動是對話框也會被調用。你會問更多但不過分的需求。

相關問題