2014-10-30 12 views
8

Buduję aplikację Wear, która będzie komunikować się z WearableListenerService na urządzeniu kieszonkowym. Jednak chcę się upewnić, że usługa jest uruchomiona, gdy aplikacja zostanie uruchomiona na zegarku.Android Wear: uruchamianie usługi na urządzeniu Handheld

Moja początkowa myśl polegała na wysłaniu intencji lub komunikatu rozgłoszeniowego, aby rozpocząć świadczenie usługi. Nie udało mi się jednak ustalić, w jaki sposób uzyskać zegarek, aby zamiast tego wysłać go do sparowanego urządzenia kieszonkowego.

Na stronie Watch:

Intent intent = new Intent(); 
intent.setAction("my.wearable.CONNECT"); 
sendBroadcast(intent); 

na palmtopie strony:

public class WearableBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent startServiceIntent = new Intent(context, WearableService.class); 
     context.startService(startServiceIntent); 
    } 
} 

<receiver android:name=".service.wearable.WearableBroadcastReceiver" > 
    <intent-filter> 
     <action android:name="my.wearable.CONNECT" /> 
    </intent-filter> 
</receiver> 

Odpowiedz

4

Istnieje kilka rzeczy, które trzeba wyczyścić

  1. interfejsów komunikacyjnych pomiędzy Androida Zużycie urządzenia i urządzenia z systemem Android są następujące:

    • DataApi
    • MessageApi

    Zastosowanie NodeApi dostać podłączony identyfikator węzła.

  2. Nie można przesłać zamiaru od strony noszenia i spodziewać się, że zostanie odebrany po stronie telefonu.

  3. Po stronie telefonu, jeśli rozszerzasz usługę WearableListenerService, usługa ta jest zarządzana samodzielnie przez system operacyjny Android. Oznacza to, że jeśli usługa miała otrzymać wiadomość lub dane ze zużycia, Android automatycznie utworzyłby usługę, wykonałaby obsługę żądania i w razie potrzeby zniszczyłaby usługę. Nie musisz tutaj robić nic szczególnego.

Intencją zdefiniowane w manifeście (kopia wklejone powyżej) jest wystarczająco dobre dla Android OS zrobić powyższy podaną zarządzania usługą.

+0

Mam usługę, która rozszerza 'WearableListenerService' i robi kilka rzeczy, nawet jeśli aplikacja jest martwa, co jest wspaniałe, ale nie może wysłać niczego do mojego noszenia, jeśli ta ręczna aplikacja nie jest aktywna. Wysyłam wiadomość, gdy aplikacja do noszenia jest otwarta, do palmtopa, a następnie wysyłam moją odpowiedź na api do noszenia przez "DataApi", ale nie pojawia się na Wearable. W "WearableListenerService" czekam na "GoogleApiClient", aby połączyć się, a następnie wysłać moje do noszenia. Czy to jest właściwy sposób? Mówiąc prościej, pytam handhelda, aby wykonał prośbę, a następnie z serwisu odeślę go z powrotem –

Powiązane problemy