iOS 蓝牙4.0如何同时连接多个外设?

Andrew_life 2016-09-14 09:37:09
最近公司在做蓝牙方面的项目,请问有人知道如何同时连接多个外设吗?
...全文
1522 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33654285 2016-09-21
  • 打赏
  • 举报
回复
可以把扫描到的设备存放到数组中(先设置扫描条件,过滤掉不需要连接的设备),然后在执行连接蓝牙设备的方法里,遍历数组,取出每一个元素。 如: for(CBPeripheral *tmp in array){ [self.centralManager connectPeripheral:tmp options:nil]; //连接存放的蓝牙设备 }
Andrew_life 2016-09-21
  • 打赏
  • 举报
回复
引用 9 楼 wuzesong 的回复:
是要这样的效果吗? 是通过UUIDString判断的具体是哪个设备
这个效果好像对我的需求没影响,我们就是同时连上四个设备,然后读取它的数据,显示出来而已,方便加一下QQ聊吗,这里聊太.....这是我的QQ:358701938或者告诉我你的QQ
wuzesong 2016-09-21
  • 打赏
  • 举报
回复
if ([peripheral.identifier isEqual:kPeripheralUUID] || 其他的设备) { dispatch_async(dispatch_get_main_queue(), ^{ [self.centralManager connectPeripheral:peripheral options:nil];//连接外围设备 }); } 这样写吧,这样的话,可以正常的连接上,,,我试了试连接一个之后在进行扫描+连接的情况,会出现一些其他的问题,,,,当然因为我和你的外设可能不一样,也许你可能不会出现我出现的某些问题,
wuzesong 2016-09-21
  • 打赏
  • 举报
回复

是要这样的效果吗?
是通过UUIDString判断的具体是哪个设备
Andrew_life 2016-09-21
  • 打赏
  • 举报
回复
引用 7 楼 wuzesong 的回复:
[quote=引用 6 楼 wuzesong 的回复:] [quote=引用 5 楼 Scorpio_27 的回复:] [quote=引用 4 楼 wuzesong 的回复:] [quote=引用 3 楼 Scorpio_27 的回复:] [quote=引用 1 楼 wuzesong 的回复:] 你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?[/quote] 你要是懂得连接一个的话,想要连接多个就在走一遍(扫描+连接)就行,这个流程不会影响你连接的其他的硬件,只不过你要想做区分的话,就得那他们的唯一标识符来进行区分就行。[/quote] 再走一遍(扫描+连接)??,扫描和连接不是只走一次吗,我连接一个的时候是判断它的UUID连接的,连上之后就走下面获取服务和获取特征值的方法啊,你是在哪个方法里再走一遍的?? if ([peripheral.identifier isEqual:kPeripheralUUID]) { dispatch_async(dispatch_get_main_queue(), ^{ [self.centralManager connectPeripheral:peripheral options:nil];//连接外围设备 }); }[/quote] 你要是这样写的话,你若知道你需要的所有的外设的UUID,那么就都写在这个地方,你可以尝试一下,我没有这么写过,但理论上行得通; 或者你连接成功一个硬件之后,再调用 [manager scanForPeripheralsWithServices:niloptions:nil];,然后再将整个流程再走一遍,再去连接其他的外设.[/quote] 个人觉的得一个一个的连接,,我以前调试的时候确实连接上好多外设,我明天具体的再试一遍,再讲方法告诉你[/quote] 好的,你说你不是通过UUID判断具体哪个设备的,那你是通过什么方法判断的?
wuzesong 2016-09-20
  • 打赏
  • 举报
回复
引用 3 楼 Scorpio_27 的回复:
[quote=引用 1 楼 wuzesong 的回复:] 你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?[/quote] 你要是懂得连接一个的话,想要连接多个就在走一遍(扫描+连接)就行,这个流程不会影响你连接的其他的硬件,只不过你要想做区分的话,就得那他们的唯一标识符来进行区分就行。
Andrew_life 2016-09-20
  • 打赏
  • 举报
回复
引用 1 楼 wuzesong 的回复:
你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?
Andrew_life 2016-09-20
  • 打赏
  • 举报
回复
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?
wuzesong 2016-09-20
  • 打赏
  • 举报
回复
引用 6 楼 wuzesong 的回复:
[quote=引用 5 楼 Scorpio_27 的回复:] [quote=引用 4 楼 wuzesong 的回复:] [quote=引用 3 楼 Scorpio_27 的回复:] [quote=引用 1 楼 wuzesong 的回复:] 你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?[/quote] 你要是懂得连接一个的话,想要连接多个就在走一遍(扫描+连接)就行,这个流程不会影响你连接的其他的硬件,只不过你要想做区分的话,就得那他们的唯一标识符来进行区分就行。[/quote] 再走一遍(扫描+连接)??,扫描和连接不是只走一次吗,我连接一个的时候是判断它的UUID连接的,连上之后就走下面获取服务和获取特征值的方法啊,你是在哪个方法里再走一遍的?? if ([peripheral.identifier isEqual:kPeripheralUUID]) { dispatch_async(dispatch_get_main_queue(), ^{ [self.centralManager connectPeripheral:peripheral options:nil];//连接外围设备 }); }[/quote] 你要是这样写的话,你若知道你需要的所有的外设的UUID,那么就都写在这个地方,你可以尝试一下,我没有这么写过,但理论上行得通; 或者你连接成功一个硬件之后,再调用 [manager scanForPeripheralsWithServices:niloptions:nil];,然后再将整个流程再走一遍,再去连接其他的外设.[/quote] 个人觉的得一个一个的连接,,我以前调试的时候确实连接上好多外设,我明天具体的再试一遍,再讲方法告诉你
wuzesong 2016-09-20
  • 打赏
  • 举报
回复
引用 5 楼 Scorpio_27 的回复:
[quote=引用 4 楼 wuzesong 的回复:] [quote=引用 3 楼 Scorpio_27 的回复:] [quote=引用 1 楼 wuzesong 的回复:] 你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?[/quote] 你要是懂得连接一个的话,想要连接多个就在走一遍(扫描+连接)就行,这个流程不会影响你连接的其他的硬件,只不过你要想做区分的话,就得那他们的唯一标识符来进行区分就行。[/quote] 再走一遍(扫描+连接)??,扫描和连接不是只走一次吗,我连接一个的时候是判断它的UUID连接的,连上之后就走下面获取服务和获取特征值的方法啊,你是在哪个方法里再走一遍的?? if ([peripheral.identifier isEqual:kPeripheralUUID]) { dispatch_async(dispatch_get_main_queue(), ^{ [self.centralManager connectPeripheral:peripheral options:nil];//连接外围设备 }); }[/quote] 你要是这样写的话,你若知道你需要的所有的外设的UUID,那么就都写在这个地方,你可以尝试一下,我没有这么写过,但理论上行得通; 或者你连接成功一个硬件之后,再调用 [manager scanForPeripheralsWithServices:niloptions:nil];,然后再将整个流程再走一遍,再去连接其他的外设.
Andrew_life 2016-09-20
  • 打赏
  • 举报
回复
引用 4 楼 wuzesong 的回复:
[quote=引用 3 楼 Scorpio_27 的回复:] [quote=引用 1 楼 wuzesong 的回复:] 你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的
就是不太熟悉,刚接触,连接一个外部设备就可以,但是同时连上多个就不知怎么下手,应该如何连接呢?[/quote] 你要是懂得连接一个的话,想要连接多个就在走一遍(扫描+连接)就行,这个流程不会影响你连接的其他的硬件,只不过你要想做区分的话,就得那他们的唯一标识符来进行区分就行。[/quote] 再走一遍(扫描+连接)??,扫描和连接不是只走一次吗,我连接一个的时候是判断它的UUID连接的,连上之后就走下面获取服务和获取特征值的方法啊,你是在哪个方法里再走一遍的?? if ([peripheral.identifier isEqual:kPeripheralUUID]) { dispatch_async(dispatch_get_main_queue(), ^{ [self.centralManager connectPeripheral:peripheral options:nil];//连接外围设备 }); }
wuzesong 2016-09-19
  • 打赏
  • 举报
回复
你要是已经熟悉了coreBluetooth的话,那么直接拿里面的系统方法进行扫描,扫描到硬件然后连接就行,是可以同时连接很多外部设别的

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧