您的心率,
在任何自行车电脑上。
HeartRate Broadcaster (HRB) 从您的 Apple Watch 和 AirPods Pro 读取实时心率,将其融合为单一读数,并通过蓝牙 LE 以标准心率监测器的形式重新广播。您的训练应用会将其视为心率带。
可在 TestFlight 上免费试用,支持侧载,或在 App Store 上架后以 4.99 美元购买。 三种选项。商店页面正在审核中。
一颗心脏,一条数据流
您的手表在测量,您的 AirPods 也在测量。两个传感器在同一时刻出现分歧,比单个传感器存在轻微误差更糟糕,因此 HRB 绝不会同时广播两者的数据——它会在两者之间进行仲裁,并将唯一的一个数值发送出去。
公开透明的传感器一致性校验
该应用绝不会要求您盲目信任其数据。它会列出当前能接收到的传感器名称,显示它们之间的心率差值(BPM),并展示最终选定并发送的那个读数。
- Apple Watch
- 主要传感器。它会运行真实的锻炼会话——这是在可用采样率下采集心率并保持屏幕关闭时持续采样的唯一方式。
- AirPods Pro 3
- 第二个完全可选的传感器。仅靠手表本身就是一个完整的数据源;仅靠 AirPods 本身也是如此。
- iPhone
- 对一致的读数进行平均,在数据不一致时剔除异常值,并将结果作为标准的蓝牙低功耗心率服务(
0x180D)进行广播。当某个传感器停止工作时,该行会明确提示,而不是默默与过时的数值进行比较。 - 接收设备
- MyWhoosh、Zwift、TrainerRoad、Wahoo 以及支持蓝牙的 Garmin Edge 设备看到的都只是一个普通的胸带。
三种获取方式
只有一个应用,且只有一个构建版本。区别在于获取途径:其中两种途径无需费用,但需要付出精力或耐心;第三种是 App Store,最为便捷。
TestFlight——免费,90 天有效
面向所有人,无需邀请。安装 Apple 的 TestFlight 应用,打开公开链接,Beta 版便会与其他应用一同安装。每个构建版本自发布之日起 90 天内有效;新构建版本会重置计时,只要持续更新,Beta 版即可一直运行。
侧载——免费,需开发者账号
每个 GitHub 发行版都包含 Release 配置的 .ipa 文件。该文件已签名用于分发,因此安装时需使用您自己的身份重新签名——Xcode、AltStore 或 Sideloadly 均可完成此操作。由于免费配置描述文件不支持 HealthKit 和后台蓝牙功能,此途径需要付费 Apple Developer 账号。此处也提供完整源代码。
App Store——USD 4.99
一次购买。无订阅,无应用内购买,无广告,无需账号,且像其他应用一样自动更新。您支付的费用是为了获得无需执行上述任一操作的便利,以及为此投入的开发工作。
在 TestFlight 上试用
测试版已开放——无需邀请列表,也无需审批。它与付费版本是同一个应用,只是通过 Apple 的测试版渠道而非商店安装。
- 1 — 安装 TestFlight
- Apple 自带的测试版应用,在 App Store 免费下载。必须先安装在 iPhone 上,链接才会生效。
- 2 — 打开公开链接
- 在同一部 iPhone 上,打开 testflight.apple.com/join/VUJCa5Gw,然后点击“接受”和“安装”。无需邀请码或代码。
- 3 — 添加手表应用
- 在 iPhone 上的“Watch”应用中安装它,方式与其他任何手表应用相同。手表是传感器,因此此步骤不可省略。
TestFlight 构建版本自发布之日起有效期为 90 天。每个新版本都会重置该期限,因此只要持续更新,测试版就会一直运行。App Store 版本不会过期。
所有屏幕
截图来自 iPhone 17 Pro Max 和 Apple Watch 的发货版本。此处所有内容均为实际截图,非模拟效果。
功能说明
应用内现已具备所有功能。本页面所述内容均非未来规划。
真实的心率带
广播标准心率服务(0x180D)的心率测量和身体传感器位置数据。任何通过蓝牙配对的心率带都会广播此服务,无需配套应用或插件。
双传感器,单一数值
当手表和 AirPods 同时上报数据时,HRB 会对一致读数取平均值,并在数据不一致时剔除异常值——优先选择更接近已有趋势的数值。车把终端始终只看到一个传感器。
灵动岛
锁定屏幕和灵动岛上的实时活动:显示当前心率(BPM)、数据来源,以及车把终端是否实际处于订阅状态。无需解锁即可一目了然。
浮动窗口
画中画功能可在您使用其他应用时将数值保留在屏幕上——在 HRB 中开始锻炼,切换到训练应用,心率数值会作为浮动窗口跟随您。
锁定手表触控屏幕
袖口、骑行服拉链或手把带上的动作可能导致广播中断。启用锁定后,手表应用会屏蔽误触——需刻意按压一秒才能解锁,且心率数值全程保持可读。
如实反馈的诊断信息
“设置”会显示已连接的中心设备的标识符、每个订阅者发送的帧数、实时帧率、最后一帧的确切字节以及上次发送距今的时间。当出现问题时,您可以查看链路中哪一半存在故障。
节拍同步动画
手机和手表上的心脏图标会以您测量的心率跳动,当数据样本停止到达时停止跳动。如果心脏图标静止且显示的数字看似合理,则意味着传感器已断开连接。
后台持续发送
一旦码表连接,锁定手机后链路仍会保持。心率发射器每秒通知一次数值是否发生变化,这与真实心率带的工作方式一致,也是码表所期望的行为。
测试信号
用于配对和调试的合成心率源,无需佩戴任何设备。在担心传感器之前,请确认码表已看到广播。
兼容性
任何接受蓝牙低功耗心率传感器的设备都会将心率发射器识别为心率传感器。
不支持 ANT+,且没有任何应用可以添加此功能
心率发射器仅通过蓝牙低功耗进行广播。ANT+ 是一种独立的无线电协议,而 iPhone 没有 ANT+ 硬件,因此任何软件都无法传输该协议。这是设备的限制,而非应用的限制。
仅通过 ANT+ 配对心率传感器的设备——包括 Garmin Forerunner 935——无论配置如何,都将永远无法看到此广播。
为 MyWhoosh 进行设置
两种配置均可使用。选择哪一种取决于你是否愿意携带 iPhone,因为 Apple Watch 没有 iPhone 就无法连接任何设备。
Apple Watch + iPhone + AirPods Pro 3
精准配置。两个传感器均会报告数据,HRB 将它们合并为一个数值,MyWhoosh 会将其识别为单个心率带。启动手表应用,在手机端选择Both作为数据源,然后在 MyWhoosh 的传感器界面配对HRB。手机留在房间内;手表无需靠近码表,只需靠近手机即可。
iPad + AirPods Pro 3
单设备配置。AirPods Pro 3 直接配对至 iPad,因此 HRB、MyWhoosh 和 Bike Control 均在同一屏幕上运行,无需 iPhone 或 Apple Watch 参与。将数据源设置为AirPods——此处隐藏了手表选项,因为没有可供它们连接的设备。
手表始终通过 iPhone 连接
Apple Watch 仅与 iPhone 配对。它无法与 iPad 配对,且自身从不通过蓝牙广播心率数据。手表应用负责测量,并通过手表到手机的链路将读数传递给 iPhone,而你的码表实际连接的是 iPhone。
因此,在 iPhone 配置中,手表会增加第二个传感器;而在 iPad 配置中,手表不会增加任何内容。如果你希望桌面上只保留一个设备,请在 iPad 上使用 AirPods,并将手表排除在外。
| 在后台配对一次 | 在 MyWhoosh 报告传感器已连接之前,请保持 HRB 在屏幕前台运行。iOS 会隐藏后台应用广播的服务,因此发现过程必须在 HRB 处于前台时进行——此后你可以切换应用或锁定设备,连接依然保持。 |
|---|---|
| 从单个设备广播 | 在 iPhone 或 iPad 上运行 HRB,不要同时运行。同时运行两个副本会在 MyWhoosh 的列表中添加两个相同的 HRB 传感器,且无法在配对屏幕上区分它们。 |
| 手表链接(如果该行显示为红色) | 主屏幕上的“Watch App”行报告手机实际看到的状态。未安装表示手表应用从未打开过;无法连接通常表示手表应用未运行——请打开它并启动会话。在 iPad 上,该行会完全消失。 |
| 尝试不使用传感器 | 将源设置为 Test Signal 以广播合成的 50–100 BPM 信号。它在 MyWhoosh 中的配对方式与真实读数完全相同,这是在佩戴任何设备之前确认传感器端工作正常的最快方法。 |
常见问题
人们首先遇到的问题,以及针对每个问题的诚实解答。
AirDrop 停止工作——请先停止广播
AirDrop 通过蓝牙低功耗发现附近设备,HRB 也使用相同的无线电进行广播。当 HRB 正在广播且头显设备已订阅时,它会持续占用该无线电,导致 AirDrop 可能无法看到另一端的设备——或者显示该设备但在传输开始前停滞。
停止广播,或退出 HRB,然后退出 AirDrop。AirDrop 会立即恢复正常,且不会丢失任何内容:一旦 HRB 回到前台,重新配对只需轻按一次。对于广播时可能失效的其他任何功能(如 CarPlay 接力、开始丢键的蓝牙键盘、Continuity Camera),也值得尝试此操作。
配对后我可以锁定屏幕吗?
可以。发现过程需要 HRB 处于前台,但连接在锁定、后台运行和应用切换后仍然保持。您无法在应用隐藏时首次进行配对——iOS 会在后台停止广播该服务。
耗电情况如何?
广播本身耗电很少;产生读数的心率训练会话则不然。预期耗电量与该设备上任何心率训练相当。在 iPhone 搭配方案中,手表是耗电更严重的一端,因为由它负责测量。
两个应用能同时读取广播吗?
是的。蓝牙低功耗(Bluetooth LE)允许多个订阅者连接同一个传感器,因此 MyWhoosh 和另一个应用都可以看到相同的数据。主屏幕会显示实时订阅者数量,以便您确认两者均已成功连接。
骑行过程中 BPM 数值冻结
当数据过时而非重复无效数值时,读数会变灰。使用 AirPods 时,这通常意味着它们停止了数据上报——该行上的路线选择器会暂时切换音频输出再恢复,从而在不离开应用的情况下重新建立连接。
我的 Garmin 设备找不到它
请检查该型号是否仅支持通过 ANT+ 配对心率数据。iPhone 没有 ANT+ 无线电模块,因此任何应用都无法传输该数据。支持蓝牙胸带配对的 Garmin 设备通常能正常与 HRB 配对;不支持的设备则永远无法配对。
数据去向何处?
仅发送到蓝牙无线电,不会发送到其他地方。没有账户、没有服务器、也没有数据分析。心率数据来自设备上的 HealthKit,并以标准传感器值的形式发送给您已配对的应用。
要求
无需账户,无需登录,且数据不会离开您的手机——心率数据仅发送至蓝牙无线电,不传至其他任何地方。
| iPhone | 需要 iOS 26 或更高版本。广播功能使用蓝牙外围设备角色,模拟器不支持此功能——因此需要真实硬件。 |
|---|---|
| Apple Watch | 需要 watchOS 11 或更高版本。手表应用会运行锻炼会话,这是以有效频率获取心率并在屏幕关闭时保持采样的唯一方式。 |
| AirPods | 可选。AirPods Pro 3 会将心率数据报告给运行锻炼会话的设备,因此当您将其设为数据源时,HRB 会在手机上启动一个锻炼会话。 |
| 价格 | App Store 售价 4.99 美元,一次性付费。无订阅,无应用内购买。TestFlight 测试版与正式版并行运行,任何希望提前体验下一个版本的用户均可使用。 |
| 配对 | 请保持应用处于前台状态,直到您的码表连接成功。iOS 会隐藏后台应用广播的服务 UUID,因此发现过程必须在应用前台进行——连接建立后,即使锁定手机,连接也会保持。 |
| 广播名称 | 默认为 HRB,可编辑至最多 10 个字符——广播数据包为 31 字节,码表会截断更长的名称。 |
在 GitHub 上开源
整个应用均在 MIT 许可下发布——包括 iPhone 应用、Apple Watch 应用、Live Activity、构建脚本以及本网站。如果您更愿意亲自查看蓝牙代码,而不是盲目相信我们的隐私声明,所有代码均在此处。
- 阅读
- github.com/tankbottoms/HeartRateBroadcaster —— Swift 语言,无依赖项,无需检查任何分析 SDK。
- 构建
- 克隆代码,运行
xcodegen generate,打开项目并构建。签名需要您自己的团队标识符;无需其他配置。 - 侧载
- 每个版本都附带带有侧载说明的 Release 配置
.ipa文件。由于免费配置概要文件无法使用 HealthKit 和后台蓝牙功能,因此重新签名需要付费的 Apple Developer 账号。