Ios Apple Watch应用程序检测Apple Watch是否与手机配对

Ios Apple Watch应用程序检测Apple Watch是否与手机配对,ios,cocoa-touch,watchkit,Ios,Cocoa Touch,Watchkit,当用户在手机上打开应用程序时,是否有方法检测手机是否与apple watch配对/连接?如果您的分机运行代码将激活:在您的控制器上,则apple watch与手机配对。由于您无法在实际的Apple Watch上运行任何代码,因此无法知道该手表是否与iPhone配对。没有内置方法(至少在WatchKit SDK中)来确定手表是否与iPhone配对。一种常见的策略是将BOOL写入共享NSUserDefaults(使用应用程序组),以便iPhone知道Watch应用程序至少运行过一次。这就是我在自己的

当用户在手机上打开应用程序时,是否有方法检测手机是否与apple watch配对/连接?

如果您的分机运行代码将激活:在您的控制器上,则apple watch与手机配对。由于您无法在实际的Apple Watch上运行任何代码,因此无法知道该手表是否与iPhone配对。

没有内置方法(至少在WatchKit SDK中)来确定手表是否与iPhone配对。一种常见的策略是将BOOL写入共享NSUserDefaults(使用应用程序组),以便iPhone知道Watch应用程序至少运行过一次。这就是我在自己的应用程序中使用的技术。

所以在WatchOS 2上这是可能的

您必须在iPhone端执行以下操作:

第一:

import WatchConnectivity
然后:

   if WCSession.isSupported() { // check if the device support to handle an Apple Watch
        let session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession() // activate the session

        if session.paired { // Check if the iPhone is paired with the Apple Watch
                // Do stuff
        }
    }

我希望它能帮助你:)

你不应该在自己的答案中评论别人的答案。“将布尔值添加到共享默认值以检查iPhone是否配对,这不是一个很好的解决方案。”作为对实际答案的评论,这样可以保持对话清晰。即使我的应用程序与Apple Watch没有任何关系,这句话会返回真值吗?我现在测试了它,它可以工作了。但是,手表将收到一条消息,以信任/接受应用程序。如果目标是简单地检查是否有AppleWatch,那么这似乎有点苛刻。另一方面,if语句
if session.paired
在用户获取手表上的对话框之前返回true,因此用户是否接受应用程序无关紧要。在NSUserDefaults中使用布尔值无法与正确的用户一起使用。例如,如果您的Watch应用程序需要额外的权限,您不希望向所有人都要求。然而,你也不想强迫人们打开你的手表应用程序,阅读到在他们打开iPhone应用程序并请求许可之前,它是不可用的@bilalreffas的答案非常好。不幸的是,在WatchOS1中没有其他方法。WatchOS 2引入了新功能,取代了我的答案。我可以显示一个UI让用户知道他的手表没有与iPhone配对吗?在我的发现中——如果苹果手表没有与iPhone配对,那么它不会显示任何UI元素,只会显示一个黑屏。你处理过这个案子吗?你的问题标题和问题内容相互矛盾。在标题中,您会问:
我们是否可以从apple watch应用程序中检测到手表是否与iPhone配对
,在问题内容中,我们是否可以从iPhone应用程序中检测到手机与apple watch配对/连接。我认为,你应该考虑更新这个问题标题,因为你已经收到了与问题内容相关的答案。