OnDataChanged non viene mai chiamato

Sto provando il dataitem APi e qui è il mio codice

mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(Bundle connectionHint) { Log.d("Inside", "onConnected: " + connectionHint); Toast.makeText(getApplicationContext(),"Inside On connected",Toast.LENGTH_SHORT).show(); // Now you can use the Data Layer API //Creating Dataitem PutDataMapRequest dataMapRequest = PutDataMapRequest.create("/count"); dataMapRequest.setUrgent(); DataMap datamap=dataMapRequest.getDataMap(); PutDataRequest putDataRequest=dataMapRequest.asPutDataRequest(); datamap.putString("key", "Value"); PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi.putDataItem(mGoogleApiClient, putDataRequest); } @Override public void onConnectionSuspended(int cause) { Log.d("Inside", "onConnectionSuspended: " + cause); } }) .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult result) { Log.d("Inside", "onConnectionFailed: " + result); } }) // Request access only to the Wearable API .addApiIfAvailable(Wearable.API) .build(); mGoogleApiClient.connect(); } @Override public void onDataChanged(DataEventBuffer dataEventBuffer) { Log.d("Inside","onDataChanged"); } 

Cosa devo perdere per triggersre i dati cambiati ?. Ho letto questo e questo, ma non sono ancora chiaro cosa dovrei cambiare per entrare su dati cambiati

  • Come call un 'metodo' definito in un'altra attività cliccando su un button widget?
  • Mostra la tastiera per edittext quando inizia il frammento
  • Posizionare la posizione corrente dell'utente e visualizzarla nelle mappe di Google
  • Android N Java8 java.time
  • Spinner: get lo stato o ricevere la notifica quando si apre
  • LibGDX 3D aumenta la perfomance
  • Attività predefinita non trovata in Android Studio
  • java - ignora il certificato ssl scaduto
  • Valore minimo di Android SeekBar
  • come controllare se l'attività è ancora in pila?
  • Aggiungi google-services.json in studio android
  • Analizzare la data e memorizzarla nel database SQLite
  • One Solution collect form web for “OnDataChanged non viene mai chiamato”

    Se si utilizza DataApi.DataListener, è necessario aggiungereListener dopo che GoogleApiClient è connesso. Qualcosa di simile: Wearable.DataApi.addListener(mGoogleApiClient, this) all'interno del tuo GoogleApiClient.ConnectionCallbacks .

    Se state utilizzando WearableListenerService, assicurati di avere codice simile nel tuo AndroidManifest.xml sul lato di ricezione / ascolto, come mostrato di seguito:

     <service android:name=".YourCustomWearableListenerService"> <intent-filter> <action android:name="com.google.android.gms.wearable.DATA_CHANGED"/> <data android:scheme="wear" android:host="*" <!-- I believe pathPrefix is optional, removing it will make the service listener to all data change events --> android:pathPrefix="/YourDataMapPathPrefix"/> </intent-filter> </service> 

    Ricorda inoltre che onDataChanged riceverà la chiamata solo se i dati vengono effettivamente cambiati. Diciamo che i vecchi dati sono ("Persona", "Bob") e lo si sostituisce con gli stessi dati ("Persona", "Bob"), quindi onDataChanged non verrà triggersto poiché i dati non cambiano. Ma onDataChanged verrà triggersto se invece si mette ("Persona", "Bob2").

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.