gpt4 book ai didi

android - WearableListenerService 中未调用 OnMessageReceived

转载 作者:可可西里 更新时间:2023-11-01 18:45:28 32 4
gpt4 key购买 nike

我正在使用 Eclipse IDE 开发 Android Wear 应用程序。我对 Wear 应用程序和移动应用程序使用相同的包名称,并且我正在根据 google documentation 手动打包可穿戴应用程序。 .一切正常。它安装在 Android Wear 模拟器上,使用 usb 调试手机。

我的问题是当我使用以下代码向可穿戴设备发送消息时

List<Node> nodeList=getNodes();
for(Node node : nodeList) {
Log.v(" ", "telling " + node.getId() );

PendingResult<MessageApi.SendMessageResult> result = Wearable.MessageApi.sendMessage(
mGoogleApiClient,
node.getId(),
START_ACTIVITY_PATH,
null
);

result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
Log.v(" ", "Phone: " + sendMessageResult.getStatus().getStatusMessage());
}
});
}

OnPeerConnected 方法在设备对等时运行,但 OnMessageReceived 从未在 WearableListenerService 中调用。这是我的 WearableListenerService 代码:

public class DataLayerListenerService extends WearableListenerService {

private static final String TAG = "DataLayerSample";
private static final String START_ACTIVITY_PATH = "/start/MainActivity";
private static final String DATA_ITEM_RECEIVED_PATH = "/data-item-received";
private static final String LOG_TAG = "log";
@Override
public void onPeerConnected(Node peer) {
super.onPeerConnected(peer);

String id = peer.getId();
String name = peer.getDisplayName();

Log.d(LOG_TAG, "Connected peer name & ID: " + name + "|" + id);
}
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
System.out.println("Recevive message3");
}

@Override
public void onMessageReceived(MessageEvent messageEvent) {
System.out.println("service watch message1");
if (messageEvent.getPath().equals(START_ACTIVITY_PATH)) {
System.out.println("service watch message2");
Intent startIntent = new Intent(this, MainActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startIntent);
}
}
}

Logcat 中也总是出现一条警告消息:

app does not match record's app key: AppKey[com.myapp,c3f31717fa35401056c20a2798907f1232efa75e] != AppKey[com.myapp,f36e726eefc7e528db26a1c25f6fbf2f93dacd70]

如果两个应用的应用 key 应该相同,那么我如何为这两个应用创建相同的应用 key 。

非常感谢任何帮助,谢谢。

最佳答案

您的错误信息:

app does not match record's app key: AppKey[com.myapp,c3f31717fa35401056c20a2798907f1232efa75e] != AppKey[com.myapp,f36e726eefc7e528db26a1c25f6fbf2f93dacd70]

表示您的应用已使用不同的 key 进行签名。
手机和可穿戴应用程序的包名相同 - 这很好,但它们也需要共享相同的签名。这就是无法传递消息的原因 - 可穿戴应用根据包名称和签名被识别为“同一应用的一部分”。

请确保您已使用相同的 key 对这两个应用程序进行签名。如果您正在测试自动安装功能,请确保从 watch 模拟器中卸载可穿戴应用程序的调试版本。

关于android - WearableListenerService 中未调用 OnMessageReceived,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957860/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com