我正在 iOS 和 OS X Yosemite 上开发一个应用程序,它在 iOS 上使用 CoreBluetooth,在 Mac 上使用 IOBluetooth。iOS 应用程序扮演“中心”角色,而 Mac 应用程序扮演“外围”角色。
基本上,iOS 应用程序(中央)开始扫描以查找外围设备,当它发现 Mac 广告外围设备数据时,中央连接到它并可以发现它的服务和特征。
我的问题是,有时,我不知道为什么,iOS 应用程序开始扫描以查找 Mac 广告,当它找到它时(此步骤一直有效),它尝试连接它但从未成功。
为了使它能够再次成功连接到外围设备,我需要从 iOS 按钮关闭然后打开蓝牙。
另一个奇怪的事情是:想象中央处于相同的情况(尝试连接但没有成功)。在 OS X 上,如果我单击系统状态栏中的网络图标(带有 Wifi 符号),它将显示所有可用 Wifi 网络的列表,当它添加到列表中时我的 iPhone 作为“个人热点”,此时中央(在 iPhone 上)设法连接到外围设备(Mac)。
有了这个问题,应用程序的使用受到了很大的影响,因为 iPhone 随机无法连接到 Mac。
我花了很多天在互联网上(谷歌,Stackoverflow,...)寻找类似的案例。我阅读了很多文章并尝试了很多方法,例如停止扫描并在 10 秒后连接不成功时重新开始扫描。
如果我的问题不清楚,请随时告诉我。如果需要,我会更新它。
非常感谢您的帮助。我真的需要找到一种方法来解决这个问题。