2016-04-13 21 views
4

Sensors API'sını Google Fit API'larından entegre etmeye çalışıyorum. Google istemcisini yapıyorum ancak herhangi bir durumda geri arama yapılamıyor.Google Fit API - Geri Arama Yanıtı Yok

private void buildFitnessClient() { 

     if (mClient == null && checkPermissions()) { 

      Log.i(TAG, "Building Fitness Client"); 

      mClient = new GoogleApiClient.Builder(this) 
        .addApi(Fitness.SENSORS_API) 
        .addScope(new Scope(Scopes.FITNESS_LOCATION_READ)) 
        .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ)) 
        .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) 
        .addConnectionCallbacks(
          new GoogleApiClient.ConnectionCallbacks() { 
           @Override 
           public void onConnected(Bundle bundle) { 
            Log.i(TAG, "Connected!!!"); 
            // Now you can make calls to the Fitness APIs. 
            findFitnessDataSources(); 
           } 

           @Override 
           public void onConnectionSuspended(int i) { 
            // If your connection to the sensor gets lost at some point, 
            // you'll be able to determine the reason and react to it here. 
            if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_NETWORK_LOST) { 
             Log.i(TAG, "Connection lost. Cause: Network Lost."); 
            } else if (i 
              == GoogleApiClient.ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) { 
             Log.i(TAG, 
               "Connection lost. Reason: Service Disconnected"); 
            } 
           } 
          } 
        ) 
        .enableAutoManage(this, 0, new GoogleApiClient.OnConnectionFailedListener() { 
         @Override 
         public void onConnectionFailed(ConnectionResult result) { 
          Log.i(TAG, "Google Play services connection failed. Cause: " + 
            result.toString()); 
          Snackbar.make(
            MainActivity.this.findViewById(R.id.main_activity_view), 
            "Exception while connecting to Google Play services: " + 
              result.getErrorMessage(), 
            Snackbar.LENGTH_INDEFINITE).show(); 
         } 
        }) 
        .build(); 
     } 
    } 

LogCat, ben "Yapı Spor Client" log görebilirsiniz:

İşte benim kodudur. Bundan sonra, hepsi boş. Hata yok. Hiçbir şey değil. LogCat:

04-13 07:21:40.964 13226-13226/com.hbeat.hbeat I/BasicSensorsApi﹕ Ready 
04-13 07:21:40.964 13226-13226/com.hbeat.hbeat I/BasicSensorsApi﹕ Building Fitness Client 
04-13 07:21:41.154 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435161647 
04-13 07:21:41.154 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435161647 
04-13 07:21:42.154 13226-13243/com.hbeat.hbeat I/GMPM﹕ Tag Manager is not found and thus will not be used 
04-13 07:21:43.674 13226-13226/com.hbeat.hbeat W/FragmentActivity﹕ Activity result delivered for unknown Fragment. 
04-13 07:21:43.694 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435164182 

ben SDK Manager En son olarak gösterilir 8.4.0 (revizyon 29) ile benim KITKAT cihaz ve bina son oyun servisleri (8.7.03) kullanıyorum.

Bu uygulama için Google geliştirici konsoluna doğru bir şekilde proje ekledim.

+0

Bu fonksiyon etkinliği veya parçasını barındırmak yok ? .enableAutoManage (..) kullanıyorsanız, FragmentActivity öğesini genişletmeniz gerekir. – uguboz

+0

Bunun için bir çözüm buldunuz mu? – suku

cevap

2

Google yeni API'yi yayınladı ve bu sorun çözüldü.

derleme: Dolayısıyla, sadece ile build.gradle dosyasını güncellemek 'com.google.android.gms: play-hizmetler-fitnes: 10.0.0'

+0

Çabalarınız için teşekkür ederim :) –

0

connect() ve disconnect() yöntemlerini çağırmanız gerekir. Arabirimler, Google Play hizmetlerine bağlantı başarılı olursa, başarısız olursa veya askıya alındığında, eşzamansız connect() yöntemine karşılık olarak geri çağrı alır.

mClient.connect(); 

Numune kodları ve daha fazla bilgi Manually Managed Connections bulunabilir.

+0

Bunu yaptım. Hala sorun devam ediyor. –

+0

Aynı sorunu yaşıyorum. – Smeet