【发布时间】:2014-07-25 14:16:34
【问题描述】:
我正在使用 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 中也总是出现警告信息:
应用与记录的应用密钥不匹配:AppKey[com.myapp,c3f31717fa35401056c20a2798907f1232efa75e] != AppKey[com.myapp,f36e726eefc7e528db26a1c25f6fbf2f93dacd70]
如果两个应用程序的应用程序密钥应该相同,那么我如何为两个应用程序创建相同的应用程序密钥。
非常感谢任何帮助, 谢谢。
【问题讨论】:
-
com.myphoneapp和com.wearableapp是什么? -
@Maciej。这是错误的。现在我已经更正了我的帖子。一个“com.myapp”声明是手机应用程序的包名称,第二个是磨损应用程序。无论如何感谢您的回复。
-
没问题。请看下面我的回答:)
标签: android