我是Android Wear编程的新手,我正在学习开发这个应用程序 .
它只是一个媒体控制器 - 这样用户可以按下 Watch 上的播放/暂停,播放视频的手机接收并处理它 .
到目前为止我做了什么:
我已经设置了Android Wear应用,以便我可以从移动应用收到通知 .
Intent notificationIntent = new Intent(this, NotificationActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.extend(new NotificationCompat.WearableExtender()
.setContentIcon(R.drawable.ic_launcher) .setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_FULL_SCREEN)
.setDisplayIntent(pendingIntent)
.addAction(new NotificationCompat.Action.Builder(R.drawable.ic_launcher, "Hej", pendingIntent).build())
.setContentAction(0));
((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
.notify(NOTIFICATION_ID, notificationBuilder.build());
上面的代码是我用来在 Watch 上显示我的远程卡的代码 . 但是,我想要实现的是,当按下此按钮时,它应该向手机发送消息 .
现在我的问题是:
-
我只能将新意图设置为动作 . 这真的是将一条简单的消息(如字符串或整数)发送回手机的正确方法吗?就像一个只发送消息然后命运的活动?如果是这样,我如何让API进入该活动,以便我可以将消息发送到手机?
-
如何发送此信息并通过电话接收?我在导游中没有发现任何相关内容...我已经看到有迹象表明,当Wear设备发送消息时我可以在手机上开始练习,但由于我在那里有跑步活动,所以这绝对不是我想做的事情 . ..
谢谢!
1 回答
所以这就是我解决问题的方法:
在Android Wear模块上,我使用了WearableListenerService . 从我的移动模块,我只需使用Wearable DataAPI向其发送数据事件 . WearableListenerService中的函数onDataChanged接收它们,所以我只是将它子类化并实现了我自己的 .
在此方法中,我使用提供的信息来创建和显示新的通知 . 从notfication活动中,我请求一个ListenerService类的实例,并使用它将消息发送回移动设备 .
然后,移动设备上的活动实现MessageAPI.MessageListener并且通信正常工作 .
我在路上学到的一些经验教训:
请求需要随时更改 . 因此,即使我只对第一篇文章感兴趣,也没有发生,因为我没有更改数据 . 所以当我使用putString时,我不得不添加一个计数器做String并递增它 . 喜欢:
putDataMapRequest.getDataMap() . putString(“path”,“hello”(count));