2016-08-15 5 views
0

이것은 나를 화나게하고 있습니다. Android 앱에서 Google Fit API에 연결하려는 클라이언트가 있습니다. 클라이언트가 이전에 이미 승인되었습니다. (그리고 그 단계가 작동합니다.)콜백없이 GoogleApiClient가 영원히 멈춤

GoogleApiClient.Builder builder = new GoogleApiClient.Builder(activity.getApplicationContext()) 
      .addApi(Fitness.SESSIONS_API) 
      .addApi(Fitness.SENSORS_API) 
      .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) 
      .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
       @Override 
       public void onConnected(@Nullable Bundle bundle) { 
        LogExt.i(MyClass.class, "Connected to Google Fit...."); 
       } 

       @Override 
       public void onConnectionSuspended(int i) { 
        LogExt.d(MyClass.class, "Connection to Google APIs suspended"); 
       } 
      }); 
     builder.enableAutoManage(PinCodeActivity.instance, new GoogleApiClient.OnConnectionFailedListener() { 
      @Override 
      public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
       if (connectionResult.isSuccess()) { 
        LogExt.i(MyClass.class, "Connected to Google Fit !"); 
       } else { 
        LogExt.e(MyClass.class, "Cannot connect Google Fit: " + connectionResult.getErrorMessage()); 
       } 
      } 
     }); 
    } 
    gclient = builder.build(); 
    LogExt.d(MyClass.class, "Going to connect to Google APIs..."); 
    gclient.connect(); 

이 애플리케이션은 다음 않습니다 아무것도 :

여기 전화입니다. 인쇄 된 로그가 없습니다. 연결이 없습니다. 단절이 없습니다. 전혀. 일반 로그를 보았지만 여전히 단서를 찾을 수 없습니다. 삼성 갤럭시 S6, 안드로이드 6.0.1, 수입 라이브러리에

실행 : 내가 잃었어요 com.google.android.gms:play-services-fitness:9.4.0

. 도와주세요!

답변

0

문제점을 발견했습니다. 그것은 enableAutoManage()에 전달 된 활동과 관련이 있습니다. 통과 된 활동은 그 때 파괴되고, 그래서 클라이언트는 어딘가에 잃었다.

동일한 클라이언트에서 다른 활동을 수행 할 수 없기 때문에 클라이언트가 활동에 바인딩되어야하는 것은 유감 스럽지만 그게 그 방법입니다. 또한 디버깅에 의존 할 수있는 피드백이 없다는 점도 유감입니다.