Я работаю над приложением для Android Wear, которое может начать работу с телефоном. Все отлично работает, но я не хочу полагаться на постоянно работающий фоновый сервис на телефоне, чтобы забрать это сообщение. В идеале, я бы запускал WearableListenerService одновременно с приложением и продолжал работать до onPause.Android Wear - получает сообщение от Wear without WearableListenerService?
Есть ли способ перехватить сообщение от Wear с помощью широковещательного приемника и фильтра намерений, а затем запустить приложение/услугу из приемника? Вот некоторые из кода:
Чтобы отправить сообщение на телефон:
private void sendMessage(String path, byte[] data) {
if (mNode != null && mGoogleApiClient!=null && mGoogleApiClient.isConnected()) {
Wearable.MessageApi.sendMessage(
mGoogleApiClient, mNode.getId(), path, data).setResultCallback(
new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
if (!sendMessageResult.getStatus().isSuccess()) {
Log.e("TAG", "Failed to send message with status code: "
+ sendMessageResult.getStatus().getStatusCode());
Toast info = Toast.makeText(WearActivity.this, "Failed to send message, status code: " + sendMessageResult.getStatus().getStatusCode(), Toast.LENGTH_SHORT);
info.show();
}
}
}
);
}
}
На приемном конце, у меня есть WearableListenerService, который получает сообщение. (Обратите внимание, как телефон и мобильные имеют классы WearableListenerService так общение 2-полосная
Примечание: 'WearableListenerService' does ** не ** работает постоянно - он запускается только при отправке нового сообщения/соединения узла/изменения уровня данных. – ianhanniballake