我有两个相同的应用程序UISupportedExternalAccessoryProtocols
。这些正在与MFI certified
设备通信。我怎么知道会话已经与同一设备上的其他应用程序一起创建。所以我可以提醒用户你不能sessions
一次用同一个附件创建多个。
请帮助解决这个问题。提前致谢。
我有两个相同的应用程序UISupportedExternalAccessoryProtocols
。这些正在与MFI certified
设备通信。我怎么知道会话已经与同一设备上的其他应用程序一起创建。所以我可以提醒用户你不能sessions
一次用同一个附件创建多个。
请帮助解决这个问题。提前致谢。
我个人认为 AyBayBay 的回答无效,因为您用“iOS 标签”标记了您的问题,并且此平台不支持 NSDistributedNotificationCenter。(有一个低级 api 可以做到这一点,但我认为它在一个私有框架中)
如果您假装将您的应用程序定位到 iOS8+,最简单的方法是使用 iOS8 的 AppExtensions 功能。我做了一些测试,在我的应用程序中创建了一个会话,并使用以下方式从另一个应用程序向设备发送信息。
一些应用程序 -> 应用程序扩展 -> 我的应用程序与 ext.device 连接 -> ext.device
所以我很确定您可以检查会话是否打开并将此信息返回给调用者应用程序。
仅供参考:要将信息传递给另一个应用程序,您也可以使用 URLSchemes 或 UIPasteboard,但这两种行为的方式与 AppExtensions 不同,我认为它不适合您的情况。也许它可以帮助别人......
那么当一个应用程序连接并与您的 MFI 设备建立会话时,您可以向 NSDistributedNotificationCenter 发布通知。您的其他应用程序可以订阅和侦听此消息,在接收它并在其 runLoop 中处理它(当它返回到前台时)时,您可以拥有阻止它同时创建会话的代码。您将不得不对此进行一些试验,但可以做到。