Configuración de Android Wear Watchface en el host

Actualmente tengo un watchface de desgaste android desarrollado. Sin embargo, ahora me gustaría crear una sección de configuración en la aplicación de acogida que le permitiría al usuario personalizar el watchface. Soy nuevo al desarrollo de androide así que soy curioso en la manera correcta de hacer esto.

¿Hay una manera de actualizar una preferencia compartida en el host y luego pulsar o sincronizar eso con la preferencia compartida en el dispositivo de desgaste? ¿O hay una forma totalmente diferente de mirar esto?

Puede utilizar DataApi o MessageApi para sincronizar su configuración de watchface entre dispositivos Phone y Watch.

Por favor, eche un vistazo a la documentación y elija la más adecuada a sus necesidades:
https://developer.android.com/training/wearables/data-layer/index.html https://developer.android.com/training/wearables/data-layer/data-items.html
https://developer.android.com/training/wearables/data-layer/messages.html


Aquí hay un ejemplo con el uso de DataApi .

Todo lo que se DataApi al DataApi se comparte entre los dispositivos y está disponible para ambos. Usted puede cambiar estos datos en ambos lados y el otro lado será notificado sobre tal cambio inmediatamente (cuando los dispositivos están conectados entre sí). También puede leer estos datos en cualquier momento (por ejemplo, cuando el usuario elija su reloj en el reloj – los datos de configuración ya le estarán esperando).

En el lado del teléfono:

 public class WatchfaceConfigActivity extends Activity { private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(new ConnectionCallbacks() { @Override public void onConnected(Bundle connectionHint) { } @Override public void onConnectionSuspended(int cause) { } }) .addOnConnectionFailedListener(new OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult result) { } }) .addApi(Wearable.API) .build(); mGoogleApiClient.connect(); } 

Y cada vez que desee sincronizar la nueva configuración con el dispositivo Android Wear, debe poner un DataRequest a través de DataApi :

  private void syncConfiguration() { if(mGoogleApiClient==null) return; final PutDataMapRequest putRequest = PutDataMapRequest.create("/CONFIG"); final DataMap map = putRequest.getDataMap(); map.putInt("mode", 1); map.putInt("color", Color.RED); map.putString("string_example", "MyWatchface"); Wearable.DataApi.putDataItem(mGoogleApiClient, putRequest.asPutDataRequest()); } } 

En el lado del reloj:

Necesita crear una clase que extienda WearableListenerService :

 public class DataLayerListenerService extends WearableListenerService { @Override public void onDataChanged(DataEventBuffer dataEvents) { super.onDataChanged(dataEvents); final List<DataEvent> events = FreezableUtils.freezeIterable(dataEvents); for(DataEvent event : events) { final Uri uri = event.getDataItem().getUri(); final String path = uri!=null ? uri.getPath() : null; if("/CONFIG".equals(path)) { final DataMap map = DataMapItem.fromDataItem(event.getDataItem()).getDataMap(); // read your values from map: int mode = map.getInt("mode"); int color = map.getInt("color"); String stringExample = map.getString("string_example"); } } } } 

Y declararlo en su AndroidManifest :

 <service android:name=".DataLayerListenerService" > <intent-filter> <action android:name="com.google.android.gms.wearable.BIND_LISTENER" /> </intent-filter> </service> 

Observe que esto es sólo un ejemplo de uso. Tal vez (en lugar de registrar una instancia de WearableListenerService ) será mejor para usted crear una instancia de mGoogleApiClient dentro de su Watchface directamente y añadir un DataListener allí:

  Wearable.DataApi.addListener(mGoogleApiClient, new DataListener() { @Override public void onDataChanged(DataEventBuffer dataEvents) { // read config here and update the watchface } }); 

Tal vez usted no necesita datos compartidos – entonces usted puede comunicarse con MessageApi y enviar mensajes sólo cuando se guarda nueva configuración o, a continuación, ver quiere leer la configuración actual desde el teléfono.

No hay preferencias compartidas entre los módulos móviles y de desgaste per se, pero puede enviar mensajes y / o actualizar activos que un oyente detectará. Por ejemplo, cuando cambia una preferencia en el teléfono, también puede enviar un mensaje al reloj mediante la API de mensajes. En el reloj, debe implementar un WearableListenerService con un método onMessageReceived , en el que puede analizar el mensaje y tomar una acción adecuada, como establecer una preferencia en el reloj.

Consulta la guía de formación de desarrolladores de Android: https://developer.android.com/training/wearables/data-layer/index.html

  • Mostrando el estilo de Android Wear AlertDialog
  • Envío de datos al dispositivo de desgaste de Android
  • Adición de imágenes / iconos adicionales a CardFragment (Android Wear)
  • ¿Cómo puedo crear una notificación diferente en el dispositivo y el desgaste?
  • Creación de un Wear AVD
  • Cómo agregar el botón directamente en Notificación en Android Wear
  • Android Wear detecta "Mute"
  • Proyecto Android Wear con múltiples dimensiones de sabor
  • Los comandos de voz no funcionan en el equipo de Android
  • Emulador Android Wear y modo ambiente
  • ¿Cómo agregar puntos de página para selectores 2D en Android Wear?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.