我成功地从手持设备发送了消息,但可穿戴设备未收到消息:
我让我的掌上电脑在此处发送消息:
@Override
public void onConnected(Bundle arg0) {
new SendToDataLayerThread(IS_PAID_VALUE, String.valueOf(Constants.PackageProperties.IS_PAID)).start();
}
private class SendToDataLayerThread extends Thread {
String path;
String message;
// Constructor to send a message to the data layer
SendToDataLayerThread(String p, String msg) {
path = p;
message = msg;
}
public void run() {
NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
for (Node node : nodes.getNodes()) {
MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), path, message.getBytes()).await();
if (result.getStatus().isSuccess()) {
Log.v("myTag", "Message: {" + message + "} sent to: " + node.getDisplayName());
}
else {
// Log an error
Log.v("myTag", "ERROR: failed to send Message");
}
}
}
}
public class ListenerService extends WearableListenerService
implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
private static final String IS_PAID_VALUE = "/is-paid-value";
private GoogleApiClient mGoogleApiClient;
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate");
mBroadcastManager = LocalBroadcastManager.getInstance(getApplicationContext());
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
try {
mGoogleApiClient.connect();
} catch (Exception e) {
Log.d(TAG, "onCreate: mGoogleApiClient.connect exception: " + e);
}
}
@Override
public void onMessageReceived(MessageEvent messageEvent) {
Log.d("#####", "onMessageReceived: " + messageEvent);
if (messageEvent.getPath().equals(IS_PAID_VALUE)) {
String isPaid = new String(messageEvent.getData());
Utilities.PackageProperties pp = new Utilities.PackageProperties();
pp.setIsPaid(Boolean.parseBoolean(isPaid));
}
}
}
我从来没有在监听器中输入 onMessageReceived 。我已在 list 中声明它:
最佳答案
我在开发可穿戴设备时遇到了非常类似的问题。就我而言,即使从可穿戴设备成功发送消息,我也无法在移动设备上接收任何消息。
在 AndroidManifest、build.gradle 和 yada yada yada 中设置所有内容(相同的包名称、applicationId、权限等)后,我发现我在移动设备上的应用程序有多种构建类型和风格。 所以......我设法解决了这个问题,只需在可穿戴设备上配置口味和构建类型即可。 之后,我可以在两个设备之间成功发送和接收消息。
希望对您有帮助。干杯!
关于wear-os - 可穿戴设备未收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722851/