斯威夫特:为什么';t我的iOS已扫描其他蓝牙设备

斯威夫特:为什么';t我的iOS已扫描其他蓝牙设备,ios,iphone,swift,ipad,bluetooth,Ios,Iphone,Swift,Ipad,Bluetooth,现在我正在做一个应用程序项目,需要我的iPhone扫描附近的其他蓝牙设备并将它们列出。我想知道我的代码有什么问题吗 代码: 我正在使用iPhone5(iOS9),我确信我的蓝牙已经打开了 在iPhone中运行应用程序时,控制台仅记录以下输出: Checking BLE service is powered on Start Scanning 但输出中没有显示蓝牙设备的名称。即使我打开我的iPad(iPadMini4iOS8),列表也不会更新 有时它会扫描我的MacBook Pro蓝牙,输出结果

现在我正在做一个应用程序项目,需要我的iPhone扫描附近的其他蓝牙设备并将它们列出。我想知道我的代码有什么问题吗

代码:

我正在使用iPhone5(iOS9),我确信我的蓝牙已经打开了

在iPhone中运行应用程序时,控制台仅记录以下输出:

Checking
BLE service is powered on
Start Scanning
但输出中没有显示蓝牙设备的名称。即使我打开我的iPad(iPadMini4iOS8),列表也不会更新

有时它会扫描我的MacBook Pro蓝牙,输出结果如下:

Peripheral: <CBPeripheral: 0x14d70e00, identifier = 54738076-6C97-FD04-18CF-5E1AF6705865, name = vivien’s MacBook Pro, state = disconnected>
外围设备:
那么,为什么会发生这种情况?有人能给我解释一下吗?

案例一:
您必须使用GKSession扫描并连接另一个iOS设备,而不是CoreBluetooth。
案例二:
您的蓝牙设备是蓝牙3.0附件。您的iPhone可以在设置->蓝牙中发现并显示它。
但此消息未发送到你的应用程序,因此你的应用程序无法发现它。

请使用Bluetooth 4.0附件再试一次。

但即使在我的iPhone设置>Bluetooth查找列表中,我的iPad mini和其他Bluetooth 4.0设备(如Nexus 5)也没有显示出来。所以现在的问题是,我只想扫描并列出所有其他蓝牙设备(没有配对)。这可以用你提到的GKSession完成吗?@vivien你可以在App Store下载LightBlue应用程序。这是一个很好的调试核心蓝牙的工具。GKSession在您尝试连接两个iOS设备(而不是所有蓝牙设备)时非常有用。我已下载。仍然只有我的MacBook出现在“周边设备”列表中。如何计算设备的外围设备数?它是否与外围设备相关,因此我的应用程序的扫描列表只显示我的Macbook,而不显示附近的其他蓝牙设备?案例1:你的蓝牙设备已损坏。案例2:你的蓝牙设备已连接到其他设备,因此它不会广播,情况3:您的蓝牙不会将状态更改为可发现。如果ipad上没有运行的应用程序充当可发现的外围设备,则您的应用程序将无法找到任何内容。您可以使用LightBlue应用程序宣传心率等外围设备monitor@Paulw11正如您所说,当我在LightBlue应用程序中添加虚拟外围设备时,我的iPhone能够扫描我的iPad。如果删除虚拟外设,它将无法再次扫描我的iPad。我以为所有的手机、平板电脑都是外围设备,不是吗?因此,为了能够扫描其他iPhone和iPad,我需要在后台运行LightBlue应用程序?以节省电池电量,iOS只在需要时发布广告;当一个应用程序正在为一个peripheral@Paulw11所以不管我怎么做,我仍然需要在后台运行LightBlue应用程序,对吗?或者还有其他方法吗?嗯,你需要在后台做一些应用程序广告,这样你的设备才能被发现
Peripheral: <CBPeripheral: 0x14d70e00, identifier = 54738076-6C97-FD04-18CF-5E1AF6705865, name = vivien’s MacBook Pro, state = disconnected>