如何从手持设备发送通知到可穿戴设备以打开可穿戴设备上的活动。

34
我想知道是否可以从手持设备(Android手机)向穿戴设备发送通知以打开穿戴设备上的活动? 我想要做的事情如下图所示:

进入图像描述

到目前为止,我已经查阅了以下文档,但与我想要实现的不同。
  • 将可穿戴特性添加到通知中
    • 这里描述的是从手机向穿戴设备发送通知,然后在手机上打开活动(我想在穿戴设备上打开活动)
  • 创建自定义通知
    • 这里描述的是从穿戴设备向穿戴设备发送通知,然后在穿戴设备上打开活动(我想从手机向穿戴设备发送通知)
有什么想法吗?
2个回答

52

实现这个功能的方法如下:

  1. 在移动设备上创建DataItem数据项。它将自动同步到连接的可穿戴设备。
  2. 在可穿戴设备上,实现一个WearableListenerService并监听onDataChanged事件。
  3. 当您收到一个DataItem时,在本地(即在可穿戴设备上)创建一个通知(包含在DataItem中发送的数据)。使用setContentIntent()设置通知的待定意图,以启动您的可穿戴设备活动。
  4. 不要忘记还要提供一个意图,当用户在可穿戴设备上关闭通知时触发,以便可以删除DataItem。否则,您将不会收到任何更新事件。

我创建了一个示例项目演示了以上全部内容。

如果onDataChanged方法没有被调用,可以查看这个问题


1
它运行得很好!此外,我检查了谷歌相机应用程序,它也可以从通知中打开远程快门活动,看起来他们使用了相同的方式。即使它运行得很好,我想再保持这个问题开放一个星期左右,因为我想知道是否有更直接的方法。无论如何,谢谢。 - Poly
1
@RoundSparrowhilltx 很抱歉听到这个消息。您的G手表运行哪个固件?不幸的是,我下周要出差,所以离我的G手表很远,但稍后我会检查。 - Peter Friese
@jco - 关于如何在您的手表上运行服务:在开发模式下,您需要使用Android Studio或命令行手动将可穿戴应用程序部署到手表上。对于生产环境,构建脚本将嵌入可穿戴应用程序到移动应用程序中。当用户安装您的应用程序时,它将自动安装在手表上。请参阅打包可穿戴应用程序了解更多信息。否则,请随时发布新问题 :-) - Peter Friese
我按照你的代码操作,但是无法使它运行...我没有看到任何“startService”调用,那么为什么你的可以运行? - frankelot
嗨,这对我没用。我需要每次生成签名的 APK 吗? - Krupal Shah
显示剩余18条评论

2

我认为在大多数情况下,将应用程序活动包含在通知中会更好。

例如,您可以使用setDisplayIntent(notificationPendingIntent)来显示一个活动作为通知的一部分,而不是在通知中使用“打开”按钮,如这里所述:

http://developer.android.com/training/wearables/apps/layouts.html

这样可以在应用程序和通知之间实现最佳效果。


但是这有什么限制吗?你肯定不能让你的活动在手机上运行并在Wear设备上更新吧? - corazza
这种方式不会将您的应用程序放入通知流中,而使用通知是一个关键功能。 - TWilly
该活动将在可穿戴设备上运行,并在通知中显示。您可以按照上面的链接所述,在通知中运行该活动。是的,它会将应用程序放入通知流中。 - Graydyn Young
我目前正在尝试这个,你可以在你的活动中做任何想做的事情,除了在RecyclerView中向右或向左滑动。 - rekire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接