我是Android Wear编程的新手,我在开发此应用程序时学习。
它只是一个媒体控制器 - 这样用户就可以按下手表上的播放/暂停状态,播放视频的手机会接收并处理它。
到目前为止我做了什么:
我已经设置了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());
上面的代码就是我用来在手表上显示我的遥控卡的代码。但是,我想要实现的是,当按下此按钮时,它应该向手机发送消息。
现在我的问题是:
谢谢!
答案 0 :(得分:1)
所以这就是我解决问题的方法:
在Android Wear模块上,我使用了WearableListenerService。从我的移动模块,我只需使用Wearable DataAPI向其发送数据事件。 WearableListenerService中的onDataChanged函数接收它们,所以我只是将它子类化并实现了自己的。
在此方法中,我使用提供的信息来创建和显示新的通知。从notfication活动中,我请求一个ListenerService类的实例,并使用它将消息发送回移动设备。
移动设备上的活动然后实现MessageAPI.MessageListener并且通信正常工作。
我在路上学到的一些教训:
PutDataRequest request = putDataMapRequest.asPutDataRequest(); Wearable.DataApi.putDataItem(wearApiClient,request);
请求需要随时更改。所以,即使我只对第一篇文章感兴趣,也没有发生,因为我没有改变数据。所以当我使用putString时,我不得不添加一个计数器做String并递增它。像:
putDataMapRequest.getDataMap()。putString(“path”,“hello”+(count ++));
当活动尚未在设备上运行时,将使用侦听器服务。因此,如果您想通过磨损开始移动活动 - 在移动模块中创建服务类。如果您想在手机上发生某些事情时在磨损设备上显示通知 - 请在磨损模块中使用lsitener服务。如果您只想在两个正在运行的应用程序之间进行通信 - 请使用消息或数据API。