iOS核心蓝牙-Can';无法从扫描中发现真正的设备

iOS核心蓝牙-Can';无法从扫描中发现真正的设备,ios,bluetooth,core-bluetooth,cbcentralmanager,Ios,Bluetooth,Core Bluetooth,Cbcentralmanager,我正在尝试查找蓝牙设备,并通过使用CBCentralManager连接到该设备。该设备是一个耳机。它可以通过手机上的蓝牙扫描发现。设备名称为“A1-25”。当我直接从手机蓝牙设置连接“A1-25”时,我可以用它播放歌曲,它工作正常 但是,当我开始使用CBCentralManager扫描外围设备时。我看不到名为“A1-25”的外围设备。相反,我看到了一个名为“EQ_Test_llyan”的外围设备。但之前,当我通过蓝牙设置扫描附近的设备时,“EQ_Test_llyan”并没有出现 2017-12

我正在尝试查找蓝牙设备,并通过使用
CBCentralManager
连接到该设备。该设备是一个耳机。它可以通过手机上的蓝牙扫描发现。设备名称为“A1-25”。当我直接从手机蓝牙设置连接“A1-25”时,我可以用它播放歌曲,它工作正常

但是,当我开始使用
CBCentralManager
扫描外围设备时。我看不到名为“A1-25”的外围设备。相反,我看到了一个名为“EQ_Test_llyan”的外围设备。但之前,当我通过蓝牙设置扫描附近的设备时,“EQ_Test_llyan”并没有出现

2017-12-13 16:35:07.233021+0800 Test[1405:500801] started scanning
2017-12-13 16:35:17.469375+0800 Test[1405:500801] discovered peripheral with name EQ_Test_llyan advertisementData:{
    kCBAdvDataIsConnectable = 1;
    kCBAdvDataLocalName = "EQ_Test_llyan";
    kCBAdvDataManufacturerData = <b0024551 5f544553 54>;
}
2017-12-13 16:35:17.470672+0800 Test[1405:500801] connecting with device!!!!!!!
2017-12-13 16:35:17.654884+0800 Test[1405:500801] connected to peripheral name:EQ_Test_llyan id:7326E741-BF68-D9E8-D7A6-5F27227685A7
2017-12-13 16:35:17.656526+0800 Test[1405:500801] discovering services for peripheral name:EQ_Test_llyan
2017-12-13 16:35:18.193311+0800 Test[1405:500801] discovered services:(
) for peripheral name:EQ_Test_llyan
2017-12-13 16:35:07.233021+0800测试[1405:500801]开始扫描
2017-12-13 16:35:17.469375+0800测试[1405:500801]发现名为EQ_Test_llyan广告的外围设备数据:{
KCBAdvDataDisconnectable=1;
kCBAdvDataLocalName=“EQ_Test_llyan”;
kCBAdvDataManufacturerData=;
}
2017-12-13 16:35:17.470672+0800测试[1405:500801]与设备连接!!!!!!!
2017-12-13 16:35:17.654884+0800测试[1405:500801]连接到外围设备名称:EQ_测试llyan id:7326E741-BF68-D9E8-D7A6-5F27227685A7
2017-12-13 16:35:17.656526+0800测试[1405:500801]发现外设名称的服务:EQ_Test_llyan
2017-12-13 16:35:18.193311+0800测试[1405:500801]发现的服务:(
)外设名称:EQ_Test_llyan
外围设备“EQ_Test_llyan”没有任何服务(见上面的日志),因此我无法与它通信。现在,当我回到手机设置中的蓝牙设备时,我现在连接到了“EQ_Test_llyan”,而不是“A1-25”。现在,我试着播放音乐,但耳机没有声音

当我关闭耳机时,我将与“EQ_Test_llyan”断开连接,“A1-25”将消失。因此,我得出结论,“EQ_Test_llyan”和“A1-25”来自同一个设备

请注意,我可以同时连接到这两者。我将以编程方式连接到“EQ_Test_llyan”,然后它将显示在设置中。然后我从手机设置中手动连接到“A1-25”。它将像下图所示。当我播放音乐时,我仍然可以听到耳机发出的声音。所以,只要我连接到“A1-25”,而不是单独连接到“EQ_Test_llyan”,它就可以正常工作

因此,我的问题是:

  • CBPeripheral指的是实际设备吗?因为如果是,, 为什么我不能扫描“A1-25”,但我可以扫描“EQ测试”
  • 请注意,当手机连接到“A1-25”时,手机会显示一个“i” 除此之外,这意味着可以终止连接。但是 当手机连接到“EQ_Test_llyan”时,没有“i” 在它旁边。因此,除非您关闭电源,否则无法断开连接 装置。那么,这两者有什么区别呢?“AI-25”是最重要的吗 真正的设备,而“EQ_Test_llyan”只是一个连接?我不 明白
  • 您无法从
    CBCentralManager
    中找到“A1-25”,因为它是您提到的耳机。耳机使用耳机模式(HSP),被称为“蓝牙经典”模式,而核心蓝牙仅适用于蓝牙低能量(BLE,Bluetooth 4.0)通用属性模式(GATT)。如果您查看CoreBluetooth API,就会发现它与服务和特性有关。它没有与声音相关的概要文件的抽象

    另一方面,GATT是非常通用和抽象的配置文件,可由任何类型的设备使用,每次用于某些非常特定的数据-速度、温度、心率、某些设备配置,以及几乎任何其他值。因此,您只能通过一个知道确切设备的应用程序与GATT设备配对。您与手机设置屏幕上的此类通用服务无关。

    您无法从
    CBCentralManager
    中找到“A1-25”,因为它是您提到的耳机。耳机使用耳机模式(HSP),被称为“蓝牙经典”模式,而核心蓝牙仅适用于蓝牙低能量(BLE,Bluetooth 4.0)通用属性模式(GATT)。如果您查看CoreBluetooth API,就会发现它与服务和特性有关。它没有与声音相关的概要文件的抽象


    另一方面,GATT是非常通用和抽象的配置文件,可由任何类型的设备使用,每次用于某些非常特定的数据-速度、温度、心率、某些设备配置,以及几乎任何其他值。因此,您只能通过一个知道确切设备的应用程序与GATT设备配对。您的手机设置屏幕上的此类通用服务与您无关。

    您好,谢谢您的回答。那么,如果是这样的话,我是否仍然可以从蓝牙耳机的麦克风中获取声音并从应用程序中播放?我的意思是,你说《关税及贸易总协定》的档案中没有与声音相关的档案,对吗?那么,这是否意味着我不能通过BLE传递实时声音数据?你不能通过BLE连接传递实时声音,它有不合适的API,并且运行速度太低,无法传输声音。您可以使用耳机播放和录制应用程序中的声音。在手机设置屏幕上配对耳机(A1-25)。之后,您需要在应用程序中配置音频会话以使用耳机,而不是内部麦克风和扬声器。您好,谢谢您的回答。那么,如果是这样的话,我是否仍然可以从蓝牙耳机的麦克风中获取声音并从应用程序中播放?我的意思是,你说《关税及贸易总协定》的档案中没有与声音相关的档案,对吗?那么,这是否意味着我不能通过BLE传递实时声音数据?你不能通过BLE连接传递实时声音,它有不合适的API,并且运行速度太低,无法传输声音。您可以使用耳机播放和录制应用程序中的声音。在手机设置屏幕上配对耳机(A1-25)。之后,您需要配置