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

2024-05-11

我正在开发一款适用于 Android Wear 的应用程序,它可以在手机上启动活动。一切都很好,但我不想依赖手机上不断运行的后台服务来接收此消息。理想情况下,我会让 WearableListenerService 与应用程序同时启动,并保持运行直到 onPause。

有没有办法使用广播接收器和意图过滤器拦截来自 Wear 的消息,然后从接收器启动应用程序/服务?这是一些代码:

向手机发送消息:

private void sendMessage(String path, byte[] data) {
    if (mNode != null && mGoogleApiClient!=null && mGoogleApiClient.isConnected()) {
        Wearable.MessageApi.sendMessage(
                mGoogleApiClient, mNode.getId(), path, data).setResultCallback(
                new ResultCallback<MessageApi.SendMessageResult>() {
                    @Override
                    public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                        if (!sendMessageResult.getStatus().isSuccess()) {
                            Log.e("TAG", "Failed to send message with status code: "
                                    + sendMessageResult.getStatus().getStatusCode());
                            Toast info = Toast.makeText(WearActivity.this, "Failed to send   message, status code: " + sendMessageResult.getStatus().getStatusCode(), Toast.LENGTH_SHORT);
                            info.show();
                        }
                    }
                }
        );
    }
}

在接收端,我有 WearableListenerService 接收消息。 (请注意,电话和移动设备都有 WearableListenerService 类,因此通信是双向的。


Per the 发送同步数据训练 http://developer.android.com/training/wearables/data-layer/index.html:

可穿戴监听服务(用于服务)

扩展 WearableListenerService 使您可以侦听服务中的重要数据层事件。系统管理 WearableListenerService 的生命周期,在需要发送数据项或消息时绑定到服务,并在不需要工作时取消绑定服务。*

数据监听器(用于前台活动)

在活动中实现 DataListener 可以让您在活动位于前台时侦听重要的数据层事件。使用它而不是 WearableListenerService 可以让您仅在用户主动使用您的应用程序时监听更改。

如果您只想在 Activity 打开时接收消息(忽略关闭时发送的任何消息),您可以添加MessageApi.MessageListener http://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.MessageListener.html到您的活动。

如果您希望无论您的应用程序是否打开都接收消息(确保您不会丢弃从可穿戴设备发送的消息),那么您应该使用WearableListenerService (note: WearableListenerService does not持续运行 - 仅当发送新消息/节点连接/数据层更改时启动,并在没有更多消息时停止)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Glassfish 3 有两种配置

    我想在 Glassfish 3 1 中设置 JDBC 领域 我正在关注这个博客http blog gamatam com 2009 11 jdbc realm setup with glassfish v3 html http blog g
  • ExtJS 4 用于选择所选值的组合框事件

    由于某种原因 我需要知道用户何时从组合框中选择了值 即使它已经被选择 仅当用户选择未选择的项目时 选择 事件才起作用 我在组合框或选择器的文档中没有看到任何类似 itemclick 的事件 有任何想法吗 ComboBox uses 绑定列表
  • 如何检查当前日期并移至下一个日期

    我遇到了一个我似乎无法理解的 python 问题 不确定是否需要使用 if 语句 但因为我是 python 新手 所以我实际上不确定如何编写这个小问题 事实上 这就是我遇到的问题 对于出发日历 我希望 python 能够执行以下操作 查看
  • 为什么这不会绘制图像?

    我想做的是 当我运行应用程序时 它会启动线程并且图像显示 3 秒 3000 毫秒 然后线程停止运行 图片路径正确 图片文件存在 线程本身运行 但是 图像似乎没有显示 可能出什么问题了 这是我的代码 package org main impo
  • 如何获取右侧数据框中不在左侧数据框中的数据

    我有两个数据帧 我正在尝试输出其中一个数据帧中的数据 而不是另一个数据帧中的数据 我可以使用第一个数据帧中的数据 但不能使用第二个数据帧中的数据 only new old merge new outer on Employee ID Ben
  • 如何在 PercentRelativeLayout 中使用layout_aspectRatio?

    我尝试在视图上实现 16 9 的纵横比PercentRelativeLayout https developer android com reference android support percent PercentRelativeLa
  • 澄清创建临时表的连接顺序

    我在 mysql 中有一个大型查询 涉及将多个表连接在一起 它太慢了 所以我做了 解释 发现它正在创建一个临时表 我怀疑它占用了大部分执行时间 我找到了一些相关资料 mysql 文档 http dev mysql com doc refma
  • Mailgun 内联图像,它是如何工作的?

    我正在使用 mailgun 并希望将图像添加到我的时事通讯中 现在我这样做了 mg gt sendMessage domain array from gt email protected cdn cgi l email protection
  • Android Activity 重新创建自身

    我的应用程序通常运行得很好 直到我在特定设备上遇到奇怪的问题 App中有2个活动 当我在 ActivityA 内启动 ActivityB 后 ActivityA 启动时没有问题 但是 当我通过按下硬件按钮或调用 finish 返回 Acti
  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层
  • 对同一解决方案/git 存储库中的项目的 PackageReference

    目前我正在尝试设置一个带有实现类库和抽象项目的解决方案 我想在 nuget org 上找到这两个包 通常 当您只使用 ProjectReferences 时 您只需指向 csproj 随机抽象
  • Angular 2 测试 ng-content

    我想知道是否有办法测试ng content不创建宿主元素 例如 如果我有警报组件 Component selector app alert template div div
  • Rails 5 deviseomniauth-facebook 错误:抱歉,出了点问题

    我按照 Devise 的官方指南从上到下本节 https github com plataformatec devise wiki OmniAuth Overview logout links My CALLBACK URL is http
  • `docker run` 输出到 bash 变量 - 奇怪的行为

    我看到一些奇怪的行为从docker run到 bash 变量中 简单的例子 bin bash PWD docker run rm ti ubuntu pwd 2 gt 1 also tried with PWD docker run wit
  • Kafka Streams 内部数据管理

    在我的公司 我们广泛使用 Kafka 但出于容错的原因 我们一直使用关系数据库来存储多个中间转换和聚合的结果 现在我们正在探索 Kafka Streams 作为一种更自然的方式来做到这一点 通常 我们的需求非常简单 其中一个例子是 监听输入
  • 如何抑制 IE9 window.close() 确认消息

    应用 window close 函数后 IE9 会引发 您正在查看的网页正在尝试关闭 消息 有没有办法在不更改应用程序代码的情况下 而是通过更改一些特定于 IE 的注册表项来抑制此消息 如果窗口不是由脚本打开的 IE 不允许在没有确认的情况
  • iPhone X 上横向的 UICollectionView

    当 iPhone X 横向使用时 您应该检查 safeAreaInsets 以在左侧和右侧制作适当大的装订线 UITableView 有新的insetsContentViewsToSafeArea属性 默认 true 自动将单元格内容保留在
  • BATCH - 从 Windows 命令行获取显示分辨率并设置变量

    echo off set h wmic desktopmonitor get screenheight set w wmic desktopmonitor get screenwidth echo h echo w pause 而不是得到
  • 将嵌套循环计算转换为 Numpy 以加速

    我的Python程序的一部分包含以下代码段 其中一个新的网格 是根据旧网格中找到的数据计算的 网格是二维浮点数列表 该代码使用了三个 for 循环 for t in xrange 0 t step for h in xrange 1 hei
  • Android Wear - 在没有 WearableListenerService 的情况下从 Wear 接收消息?

    我正在开发一款适用于 Android Wear 的应用程序 它可以在手机上启动活动 一切都很好 但我不想依赖手机上不断运行的后台服务来接收此消息 理想情况下 我会让 WearableListenerService 与应用程序同时启动 并保持