Android Mobile / Wear App onMessage收到一条消息多次调用

凯文·泰德拉卡

我有一个基本的Android Wear应用程序,该应用程序成功使用Wearable Data Layer在移动设备和Wear之间发送和接收消息。

但是,无论何时,我从移动或穿戴设备发送消息时,另一端都会多次收到消息(例如5-17之间的任何时间)。为什么不只收到一次?据我所知,它只发送一次。

成功连接后,这是我的发送消息代码(两端相同):

private void sendMsgToWear(final String strMsg){

    new AsyncTask<Void, Void, List<Node>>(){

        @Override
        protected List<Node> doInBackground(Void... params) {
            return getNodes();
        }

        @Override
        protected void onPostExecute(List<Node> nodeList) {
            for(Node node : nodeList) {
                Log.v("DEVELOPER", "......Phone: Sending Msg: " + strMsg + " to node:  " + node.getId());

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

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


}

private List<Node> getNodes() {
    List<Node> nodes = new ArrayList<Node>();
    NodeApi.GetConnectedNodesResult rawNodes =
            Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();
    for (Node node : rawNodes.getNodes()) {
        nodes.add(node);
        nodeID = node.getId();
    }
    return nodes;
}

这是我在实现MessageApi.MessageListener的活动中收到的信息:

@Override
public void onMessageReceived(MessageEvent messageEvent) {

    Log.d("DEVELOPER", "......Wear: successfully received phone to wear communication!");


}

我在发送端的输出如下所示:

07-11 10:54:57.646  26920-28711/com.wearTest.message V/DEVELOPER﹕ ......Phone: Sending Msg: testMessage to node:  6ecc099a-60f8-4c3d-90fe-fa2f248c6bf7
07-11 10:54:57.666  26920-26920/com.wearTest.message V/DEVELOPER﹕ ......Phone: null

以及接收方日志:

07-11 10:54:57.962    5509-5672/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.962    5509-5610/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.962    5509-5660/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.962    5509-5521/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.962    5509-5539/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5570/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5604/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5601/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5566/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5520/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5582/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.972    5509-5567/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:57.982    5509-5587/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:58.002    5509-5581/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:58.052    5509-5581/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:58.052    5509-5587/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!
07-11 10:54:58.062    5509-5570/com.wearTest.message D/DEVELOPER﹕ ......Wear: successfully received phone to wear communication!

提前致谢!

马蒂阿什

MessageApi应该可以正常工作。请注意addListener()拨打一次,否则您将收到多次通知。

或者,添加匹配的removeListener()调用(例如onResume()/ onPause())。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

How to start mobile app from wear app?

来自分类Dev

Trigger action from android wear on mobile

来自分类Dev

Android Wear Step Counter crashing app

来自分类Dev

从Real Device卸载Android Wear App

来自分类Dev

Android Wear onPeerConnected未通过新的Wear Intent调用

来自分类Dev

Android Wear onPeerConnected未通过新的Wear Intent调用

来自分类Dev

在具有Android Studio的App中设置Android Wear权限

来自分类Dev

Android Wear Notification操作错误消息

来自分类Dev

在Android Wear上未调用onDataChanged()

来自分类Dev

如何包装Wear App

来自分类Dev

Android Wear-在没有WearableListenerService的情况下从Wear接收消息?

来自分类Dev

Android Wear设置活动

来自分类Dev

Android Wear Google Analytics

来自分类Dev

Android Wear示例应用

来自分类Dev

Android Wear风格

来自分类Dev

WebView对Android Wear的支持

来自分类Dev

屏幕记录Android Wear

来自分类Dev

Android Wear防止睡眠

来自分类Dev

Android Wear图片置顶

来自分类Dev

WearableRecyclerView Android Wear OS

来自分类Dev

Android Wear错误

来自分类Dev

Android Wear中的通知

来自分类Dev

从Android Wear向主机设备发送消息

来自分类Dev

Android Wear MessageAPI-无法在UI线程上发送消息

来自分类Dev

AlarmManager无法通过Android Wear应用调用我的服务

来自分类Dev

在环境表面Android Wear中不调用onAmbientModeChanged

来自分类Dev

AlarmManager无法通过Android Wear应用调用我的服务

来自分类Dev

向Android设备发送消息,该设备会将消息发送回android Wear,但从接收到就不会在Wear上触发

来自分类Dev

无法创建“单一动作控件”通知Android Wear