我正在开发一款iPhone和Mac OS X应用程序,可以通过接近距离锁定和解锁您的Mac。这意味着,如果信号强度低于一个确定的阈值或连接丢失,它将锁定Mac。
我正在使用苹果的CoreBluetooth框架进行BTLE通信,将iPhone用作外设,将Mac用作中心设备。到目前为止,一切都很好。当我将iPhone上的应用程序发送到后台时,广告似乎发生了变化。iPhone仍在广告,但没有我在应用程序中使用的服务配置文件和特征。
虽然当iPhone仍在Mac的范围内时,这不是问题,因为它仍然连接,并且中央不使用特征,但是当将iPhone移出范围后,就会成为问题。如预期的那样,Mac会锁定并开始发现以重新连接iPhone并解锁(如果成功)。
但在此发现过程中,我使用指定的服务配置文件和特征仅获取运行我的应用程序的设备并识别用于解锁的设备。
我尝试了一种解决方法,即在没有服务配置文件的情况下进行发现,并通过其UUID识别正确的设备,该UUID在我开始使用此iPhone进行锁定和解锁时保存。这个解决方法在小范围内也有效,因为当我关闭iPhone上的蓝牙并再次打开时,它会获得另一个UUID。这是我可以接受的限制,但几个小时后它也会更改UUID,然后解锁就无法正常工作。
也许有人已经开发过类似的应用程序,并知道如何解决此类问题?或者您知道可以用于识别设备的静态值?
我正在使用苹果的CoreBluetooth框架进行BTLE通信,将iPhone用作外设,将Mac用作中心设备。到目前为止,一切都很好。当我将iPhone上的应用程序发送到后台时,广告似乎发生了变化。iPhone仍在广告,但没有我在应用程序中使用的服务配置文件和特征。
虽然当iPhone仍在Mac的范围内时,这不是问题,因为它仍然连接,并且中央不使用特征,但是当将iPhone移出范围后,就会成为问题。如预期的那样,Mac会锁定并开始发现以重新连接iPhone并解锁(如果成功)。
但在此发现过程中,我使用指定的服务配置文件和特征仅获取运行我的应用程序的设备并识别用于解锁的设备。
我尝试了一种解决方法,即在没有服务配置文件的情况下进行发现,并通过其UUID识别正确的设备,该UUID在我开始使用此iPhone进行锁定和解锁时保存。这个解决方法在小范围内也有效,因为当我关闭iPhone上的蓝牙并再次打开时,它会获得另一个UUID。这是我可以接受的限制,但几个小时后它也会更改UUID,然后解锁就无法正常工作。
也许有人已经开发过类似的应用程序,并知道如何解决此类问题?或者您知道可以用于识别设备的静态值?