Носимые устройства Android: как обрабатывать событие подключенного устройства?

Из умных часов хотелось бы перехватывать событие подключения к смартфону. Это автоматически управляется Android и Android Wear, поэтому мне нужно получить это событие из моего приложения, работающего на часах.

Я узнал об этом в WearableAPI, чтобы получать уведомления без опроса Wearable.NodeApi.getConnectedNodes.

public class MyService extends WearableListenerService {
  @Override
  public void onPeerConnected(Node peer) {
    Log.i("my wear service", "connected");
    super.onPeerConnected(peer);
    // here I would use MessageAPI to send data saved on "disk" to the smartphone
  }
}

Это правильный путь? Так это нормальный сервис? Нужно ли мне запускать его или он автоматически работает в фоновом режиме? Есть ли другие способы выполнить эту задачу?

это ссылка


person user3290180    schedule 09.07.2015    source источник


Ответы (1)


для обмена данными между носимым и портативным приложением я настоятельно рекомендую вам использовать Wearable.DataApi или Wearable.MessageApi. Вы, вероятно, захотите, чтобы подкласс WearableListenerService работал с обеих сторон и обрабатывал связь onDataChanged/onMessageReceived. У них есть пустая реализация в суперклассе. Таким образом, вы должны переопределить тот, который вам нужен. Если вы используете DataApi, вам придется переопределить onDataChanged, иначе onMessageReceived.

Должен ли я запускать его или он автоматически работает в фоновом режиме?

вы должны объявить свой подкласс в манифесте и использовать BIND_LISTENER в качестве действия,

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

Об остальном позаботится Android.

person Blackbelt    schedule 09.07.2015
comment
Нужно ли мне создавать клиент GoogleAPI внутри моей службы, чтобы сделать Wearable.DataApi.putDataItem(mGoogleApiClient, putDataReq)? Это приемлемо? - person user3290180; 09.07.2015
comment
это приемлемо. Я не вижу причин, почему этого не должно быть. - person Blackbelt; 09.07.2015