2014-04-01 47 views

回答

0

您可以使用

[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]]; 

用于获取当前连接的所有配件。

1

由于iOS不允许您控制与蓝牙设备的连接/断开连接,因此存储对未连接对象的引用是多余的。

我发现使用EAAccessoryManager事件(如accessoryDidConnect和accessoryDidDisconnect)来触发到已保存名称或标识符(蓝牙地址/ MAC地址)(而不是对EAAccessory的引用)的设备的连接更容易也更可靠而不是试图重用可能不再相关的EAAccessory。

+0

假设操作系统首先自动重新连接到蓝牙设备,但是,对吗?如果设备仍然配对,或者在那里,没有办法从曾经连接过BT设备的iOS应用发起重新连接? –

+0

iOS不允许您控制与蓝牙设备的配对,它会自行处理并通过通知通知您配件已连接/断开连接。如果您的应用程序在附件连接时运行,您可以检查附件信息以确定这是否是您的应用程序想要连接的设备。如果您的应用程序在连接配件时未运行,请使用以下答案中的查询获取当前连接的配件,并确定它们中是否有任何配件是您正在查找的配件。 – CodexNZ

+0

我说的是连接,而不是配对。我的问题不在于获得通知(我可以控制),而是在BT设备连接后重新建立连接,然后超出范围,然后再次触及。在iOS System Prefs中,BT设备仍然列为“未连接”。你知道你所建议的自动重新连接是什么控件吗(但不是我们的设备)?设备是否必须启动重新连接,或者iOS是否这样做,你知道吗? –