2013-12-18 45 views
0

我試過this來自谷歌的示例,通過Google Drive進行身份驗證,它可以正常工作。但問題是,我不知道如何恢復用戶以前的成功登錄。
例如,當用戶登錄成功時,下次他們進入我的應用程序時,他們不需要再次登錄。我在GoogleAccountCredential類看,它只有getToken方法,並沒有'setToken`,所以我不知道該怎麼做。該文件沒有提到任何有關它。
這是我的嘗試:保存並恢復Google Drive的令牌android

credential = GoogleAccountCredential.usingOAuth2(context, DriveScopes.DRIVE); 

    // try to add login account into credential 
    String accountName = SharePreferenceHelper.getDriveAccount(context); 
    if (accountName != null) { 
    credential.setSelectedAccountName(accountName); 
    service = getDriveService(credential); 
    } 

    // try to get token again 
    try { 
    String token = credential.getToken(); 
     Log.d(TAG,"token = " + token); 
    } catch (UserRecoverableAuthException ex) { 
       startActivityForResult(ex.getIntent(), requestCode); 

    } 

是否有人知道該怎麼辦呢?

回答

0

您不需要手動執行此操作。它是由GoogleAccountCredential

已經照顧這個調用

credential = GoogleAccountCredential.usingOAuth2(this, scopes);

如果以前保存自動恢復保存令牌。

您可以檢查出在這裏我的應用程序的示例源代碼: https://github.com/madhur/GAnalytics/blob/develop/src/in/co/madhur/ganalyticsdashclock/MainActivity.java

它使用谷歌分析,而不是谷歌驅動的差異。

+0

謝謝,其實我做到了,但它不起作用。我發現我的問題是用錯誤的上下文初始化GoogleAccountCredential(我把它放到服務中),所以我必須使用getApplicationContext()來初始化憑證,就像這樣:http://stackoverflow.com/questions/17431727/drive -sdk換Android的authintent-是空的 – R4j