2016-11-28 138 views
-2

我選擇了一個帳戶來登錄谷歌API客戶端後,我按下菜單鍵,然後我點擊這個應用程序前面,googleapiclient不再連接。當然我在fragment的onstart()中調用connect()方法,在onStop()中調用disconnect()。 如果帳號登錄成功,現在登錄時我不需要選擇帳號,我按了菜單鍵並點擊它,應用程序將成功登錄!GoogleApiClient無法連接

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken(Settings.VAL_GOOGLE_REQ_ID_TOKEN).requestEmail().build(); 
     mGoogleApiClient = new GoogleApiClient.Builder(this).addOnConnectionFailedListener(this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 
+0

歡迎 - 請閱讀[如何提出一個很好的問題(http://stackoverflow.com/help/how-to-問) – micstr

回答

0

你在片段或活性 使用谷歌API客戶端。如果您想使用enableAutoManage那麼你必須讓你的活動延長FragmentActivity。它所做的回調是自動管理GoogleApiClient工作所必需的。所以最簡單的解決方案是將FragmentActivity擴展到您的活動。然後,您的投射不會失敗,並導致應用程序在運行時崩潰。

另一種解決方案是自己管理api客戶端。您將從構建器中刪除enableAutoManage行,並確保您自己連接/斷開與客戶端的連接。最常見的做法是onStart()/ onStop()。喜歡的東西...

@覆蓋

保護無效的onCreate(捆綁savedInstanceState){

super.onCreate(savedInstanceState); 
mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) 
     .addApi(Places.GEO_DATA_API) 
     .addConnectionCallbacks(this).build(); 

}

@覆蓋 保護無效在onStart(){

super.onStart(); 
mGoogleApiClient.connect(); 

}

@覆蓋 保護無效的onStop(){

super.onStop(); 
mGoogleApiClient.disconnect(); 

}

相關問題