2014-11-25 6 views
2

휴대 전화에서 활동을 시작할 수있는 Android Wear 용 앱을 만들고 있습니다. 모든 것이 훌륭하게 작동하지만,이 메시지를 받기 위해 끊임없이 운영되는 백그라운드 서비스에 의존하고 싶지 않습니다. 이상적으로는 WearableListenerService를 앱과 동시에 시작하고 onPause까지 계속 실행하는 것이 좋습니다.Android Wear - WearableListenerService없이 Wear에서 메시지를 받고 있습니까?

브로드 캐스트 리시버 및 인 텐트 필터를 사용하여 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 있습니다. 통신은 2 방법입니다 때문에 (참고, 전화와 모바일 모두 WearableListenerService 클래스를 가지고있는 Sending an Syncing data training

+0

참고 : 'WearableListenerService'는 ** 지속적으로 실행되지 않습니다 ** - 새로운 메시지/노드 연결/데이터 계층 변경이 전송 될 때만 시작됩니다. – ianhanniballake

답변

1

:.

이 WearableListenerService 확장 서비스에 대한

WearableListenerService 것은()는 중요한 데이터를 수신 할 수 있습니다 시스템은 WearableListenerService의 수명주기를 관리하고, 데이터 항목이나 메시지를 보낼 때 서비스에 바인딩하고, 작업이 필요하지 않을 때 ** 서비스를 바인딩 해제합니다. *

활동에서 (전경 활동)

DataListener

구현 DataListener은 활동이 포 그라운드에있을 때 중요한 데이터 층 이벤트를 수신 할 수 있습니다. WearableListenerService 대신이 값을 사용하면 사용자가 앱을 실제로 사용하고있을 때만 변경 사항을 수신 할 수 있습니다. 활동이 (가 닫힐 때 전송 된 메시지를 무시) 열려있는 경우에만 메시지를 수신하려면

, 당신은 당신의 활동에 MessageApi.MessageListener를 추가 할 수 있습니다. 그것이 - WearableListenerService하지 실행 지속적으로 않습니다

앱이 열려 여부 메시지를 수신하려면

다음은 WearableListenerService (주를 사용한다 (당신이 착용에서 보낸 메시지를 삭제하지 않습니다 보장) 더 이상 메시지가 없을 때만 새 메시지/노드 연결/데이터 계층 변경이 전송되고 중지 될 때 시작됩니다.

+0

WearableListenerService가 sticky가 아닌 것에 대해 제 질문을 확인하십시오 : http://stackoverflow.com/questions/34491510/wearablelistenerservice-sticky-vs-not-sticky –