我正在通过手机向Wear发送消息。我希望即使在磨损活动结束时也能收到消息。
我写了一个小服务,如果收到消息,它会启动我的主Activity(UI)。但是,onMessageReceived函数永远不会在WearableListenerService中调用。我也在this tutorial尝试了示例代码,但它似乎对我没用。
到目前为止我尝试过:
以下是代码:
Wear Manifest:
<service android:name=".MessageService">
<intent-filter>
<action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
<action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
<action android:name="com.google.android.gms.wearable.CAPABILITY_CHANGED" />
<action android:name="com.google.android.gms.wearable.CHANNEL_EVENT" />
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
<data android:scheme="wear" android:host="*" android:pathPrefix="/prefix" />
</intent-filter>
</service>
MessageService:
public class MessageService extends WearableListenerService {
public Handler h;
@Override
public void onCreate() {
Log.i("service", "im here");
}
@Override
public void onMessageReceived(MessageEvent messageEvent) {
Log.i("onMessageReceived","im here!");
Intent intent = new Intent( this, MainActivity.class );
intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity( intent );
}
主要活动的代码和移动设备上的主要活动来自this example.。
活动内的通信有效,服务无效。帮助
答案 0 :(得分:0)
移动应用程序中的消息路径必须与服务的意图过滤器中的消息路径匹配。在意图过滤器中,您将其作为“ /前缀”,但在移动应用中,其为“ message1”或“ message2”。