watchOS 2.2 应用程序如何确定其配对的 iPhone 是否已切换到另一台 Apple Watch?

2024-02-28

我正在尝试在我的 iOS 9.3/watchOS 2.2 应用程序中支持与多个手表配对的新功能。它似乎运行良好,只是我无法弄清楚 watchOS 应用程序如何确定配对的 iPhone 是否已切换到另一台 Apple Watch。

The docs https://developer.apple.com/library/ios/documentation/WatchConnectivity/Reference/WCSession_class/index.html#//apple_ref/doc/uid/TP40015237-CH1-SW56WCSession从 WatchKit 扩展的角度来看,在整个切换生命周期中保持激活状态,并且从我在 Xcode 中的测试来看,手表会话似乎报告即使手机已切换到另一块手表,iPhone 也可以访问。

我目前没有多个手表来检查实际设备上的行为是否相同。


针对您的问题的具体回答:

手表不再连接的事实并不明显,因为可以使用所有传输方法,包括即时消息传递。传输会被简单地推迟,直到用户切换回该手表为止。

由于未连接的手表仍然可以向其配对的 iPhone 发起传输,因此您可能必须实施某种握手或超时检测,并查看手机是否未能及时响应。

我的发现:

看来未连接的手表并不意味着知道用户已切换到另一块手表。正如您所指出的,手表应用程序的会话仍然处于活动状态,并且手表(模拟器)仍然报告电话可以连接。

未连接的手表应用程序can继续使用all转移方式包括交互式消息传递(尽管传出数据确实会被系统排队,并且直到用户切换回该手表后才会传输)。

我已经使用两种不同的方法验证数据已排队:

  • 通过使用transferUserInfo来自手表的字典,让运行循环执行,重复该过程几次,然后检查outstandingUserInfoTransfers array.
  • 通过使用sendMessage回复处理程序仅在用户切换回该手表并收到响应后运行。

一旦切换回来,所有排队的传输都会被立即地发送到手机,然后手表接收任何交互式响应。

虽然未连接的手表能够将数据排队到其配对的 iPhone(因为其会话仍处于活动状态),但手机只能与其已连接的手表进行通信,因为手机不再与任何未连接的手表有活动会话。

新的示例代码:

你可以尝试一下新的快速切换示例代码 https://developer.apple.com/library/watchos/samplecode/QuickSwitch/Introduction/Intro.html。它用updateApplicationContext将任何手表的指示符和颜色传递到手机。

您可以更改未使用的手表的指示符和颜色,使用 Xcode 设备窗格切换到该手表,然后注意到 iOS 应用程序立即显示该手表的新指示符和颜色(已排队)while手表没用过)。

可能的reachable文档不一致:

在您的 WatchKit 扩展中,当以下情况时此属性的值为 YES:匹配会话在用户的 iPhone 上处于活动状态并且设备在范围内,以便可以进行通信。

由于我没有第二块手表,因此我无法测试未使用的手表的可达性是否会在手机移出范围后变为 false。

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

watchOS 2.2 应用程序如何确定其配对的 iPhone 是否已切换到另一台 Apple Watch? 的相关文章

随机推荐

  • 宽度 100% 的相对定位不会使内容从边到边

    我多次遇到这个问题 我决定问一下 当我使用相对定位时width 100 内容不会从屏幕边缘延伸到边缘 另一方面 当我使用绝对或固定定位时 内容确实会从边到边 为什么是这样 这是一个示例代码来显示我的问题 container display
  • 如何使用 PyGraphviz 添加并显示无向图边缘的权重?

    import pygraphviz as pgv A pgv AGraph A add node Alice A add node Emma A add node John A add edge Alice Emma A add edge
  • > 在 Java 中是什么意思?

    我正在创建JOOQ的界面表记录 http www jooq org javadoc 2 2 x org jooq class use TableRecord html
  • 如何每秒更新一个Android小部件......用秒针绘制时钟?

    我已经从各种来源阅读了大量关于更新使用 ImageView Canvas 和 Draw 方法来显示带有秒针的时钟的小部件的方法 它必须每秒更新一次 做到这一点最有效的方法是什么 用一个Service 警报管理器 处理程序 可以做到 例如 A
  • Asterisk 将声音文件播放到 ConfBridge 中?

    我正在尝试召开会议并在会议后台播放声音文件 我怎样才能使这成为可能 这显然行不通 因为声音文件将在进入会议之前播放 exten gt s 1 playback some soundfile same gt n confbridge 1 提前
  • R 中矩阵的行方差

    我想计算矩阵中每一行的方差 对于以下矩阵A 1 2 3 1 1 5 9 2 5 6 10 3 50 7 11 4 4 8 12 我想得到 1 16 0000 7 0000 564 3333 16 0000 我知道我可以通过以下方式实现这一目
  • 如何使用node.js在html中执行外部javascript文件

    我是一个完整的node js新手 正在努力学习基础知识 我有一个html文件 我想在本地主机环境中使用node js在html页面中调用外部javascript文件 你的主文件应检查请求的 url 是否要求 html js 或 css 文件
  • vcpkg 与 MinGW?

    我喜欢 vcpkg 的想法 但我想我更愿意坚持使用 MinGW 作为我的编译器 我找不到任何关于是否可以设置 或如何设置 vcpkg 以便它为 MinGW 而不是 MSVC 编译包的资源 如果可能的话 有人能给我指出正确的方向吗 有一些关于
  • 从 PHP exec() 函数读取 git Push 的输出

    我正在为我的框架的命令行工具编写部署命令 它使用git来部署 我有一行这样做 exec git push remote branch branch shell output status 我想要里面的推送输出 shell output 但它
  • 在VB6中,声明的字段有默认值吗?

    我正在查看一些旧的 VB6 代码 在多种形式中 我遇到了如下声明语句 PEC NUM ENT 1 As Byte EC MORE RW EXIST 0 As Byte EC CODE IND 0 As Byte EC DATA 7 As P
  • PHP - 数据库模式:版本控制、分支、迁移

    我正在尝试提出 或找到 一个可重用的系统 用于 php 项目中的数据库模式版本控制 有许多可用于 php 的 Rails 风格的迁移项目 http code google com p mysql php migrations http co
  • HTML5 音频的 ontimeupdate 在 Chrome 中未触发

    我有以下代码 用于创建 html5 音频元素并设置时间更新时的侦听器 音频在所有浏览器中都能正常播放 但 ontimeupdate 函数在 Chrome 中永远不会触发 包括 Android 上的 Chrome var audioEleme
  • 为什么在 Kotlin 中异步设置视图尺寸不起作用?

    这有效 myView layoutParams myView layoutParams apply height 100 但这都不是 使用 android ktx myView doOnLayout myView layoutParams
  • 无法在桌面应用程序背后的代码中绑定网格视图

    我有一个列出所有客户的网格视图 我将它绑定在放置在 MDI 子项中的 Form 的加载时间中 网格视图中的列是在设计时预定义的 我的代码Form Load 事件是 try cn db createConnection if cn State
  • ViewModel 没有零参数构造函数错误 - 即使它有零参数构造函数

    我是 Android 和 Java 新手 正在尝试制作一个基于位置的应用程序 EDIT 我做了一个非常非常简单的测试代码 但得到了同样的错误 这是java package com example viewmodeltest import a
  • 从电子邮件中的链接启动 iPhone 应用程序

    我一直在尝试 iPhone SDK 中的 URL 方案 并且我已经使用自定义 URL 方案 例如 myap Dosomething 来启动我的应用程序 但这对于我想要的东西来说并不实际 是否可以以某种方式注册一个方案 允许电子邮件中的链接
  • 与assert_select相反?

    我正在编写一个应用程序 需要检查视图是否存在not具有某些功能 特别是因为该功能必须仅呈现给特定安全组中的用户 我正在寻找与assert selects相反的内容 以便看到菜单是not呈现 看看这里的文档 http apidock com
  • java优先级队列与链表的比较

    我正在解决BFS问题 我使用了 PriorityQueue 但我得到了错误的答案 然后我使用了LinkedList 我猜对了并且 我无法找到它们之间的区别 这是两个代码 为什么两个答案不同 Code1 LinkedList q new Li
  • 如何创建一个 React Native ios 共享扩展应用程序

    我希望我的反应本机应用程序可以从 Whatsapp Skype 照片共享 我尝试使用反应本机共享扩展 https www npmjs com package react native share extension但它只在 Safari 浏
  • watchOS 2.2 应用程序如何确定其配对的 iPhone 是否已切换到另一台 Apple Watch?

    我正在尝试在我的 iOS 9 3 watchOS 2 2 应用程序中支持与多个手表配对的新功能 它似乎运行良好 只是我无法弄清楚 watchOS 应用程序如何确定配对的 iPhone 是否已切换到另一台 Apple Watch The do