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