检测已连接的蓝牙设备 - iOS

这篇具有很好参考价值的文章主要介绍了检测已连接的蓝牙设备 - iOS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

检测蓝牙已连接 的情况下更加具体的获取一些当前连接设备的信息数据,具体实现方法如下:

#pragma mark - ****************************** 检测已连接的蓝牙设备
+ (NSMutableDictionary *)getDetectsConnectedBluetoothDevices {
    AVAudioSessionPortDescription *portDescription = [YHUtility isBluetoothHeadsetConnectedEntity];
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    if (portDescription) { // 已连接UID
        NSLog(@"[蓝牙检测] - 状态 - 已连接:\n[类型] - %@\n[名称] - %@\n[UID] - %@", [portDescription portType], [portDescription portName], [portDescription UID]);
        [dict setValue:[NSString convertNull:[portDescription portType]] forKey:@"type"]; // 连接方式
        [dict setValue:[NSString convertNull:[portDescription portName]] forKey:@"name"]; // 设备名称
        [dict setValue:@"active" forKey:@"state"]; // 连接状态(激活: active & 未激活: unactivated)
    } else { // 未连接
        [dict setValue:@"none" forKey:@"state"];
        
    }
    return dict;
}
#pragma mark - ****************************** 蓝牙耳机是否链接 - 实体
+ (AVAudioSessionPortDescription *)isBluetoothHeadsetConnectedEntity {
    /*
     蓝牙开启未链接耳机:
     Speaker
     
     单向保真音频协议(输出):
     BluetoothA2DPOutput
     ...
     
     双向保真音频协议(输入 & 输入):
     BluetoothHFP - HFP(Hands-Free Profile)
     BluetoothHSP - HSP(HeadSet Profile)
     
     其它:
     Receiver
     */
    AVAudioSession *session = [AVAudioSession sharedInstance];
    AVAudioSessionRouteDescription *routeDescription = [session currentRoute];
//    NSLog(@"%@", routeDescription);
    if (routeDescription) {
        NSArray *outputs = [routeDescription outputs]; // 输入源
        if (outputs && 0 < [outputs count]) {
            AVAudioSessionPortDescription *portDescription = [outputs objectAtIndex:0];
            NSString *portType = [portDescription portType];
            NSLog(@"PortType: %@", portType); // 蓝牙开启未链接: Speaker && 链接耳机: BluetoothA2DPOutput BluetoothHFP BluetoothHSP
            if (portType && [portType isEqualToString:@"BluetoothA2DPOutput"]) {
                NSLog(@"[蓝牙检测] - 状态 - 输出 - %@", [portDescription portName]);
                return  portDescription;
            } else if (portType && [portType isEqualToString:@"BluetoothHFP"] && [portType isEqualToString:@"BluetoothHSP"]) {
                NSLog(@"[蓝牙检测] - 状态 - 输出 & 输入 - %@", [portDescription portName]);
                return portDescription;
            }
        }
    }
    return nil;
}

以上便是此次分享的全部内容,希望能对大家有所帮助!文章来源地址https://www.toymoban.com/news/detail-528972.html

到了这里,关于检测已连接的蓝牙设备 - iOS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp:蓝牙设备ios与安卓端deviceId不一致问题及ios端获取蓝牙mac地址方法

    在uniapp开发项目中,主要是指APP端,使用API接口: uni.getBluetoothDevices 或者 uni.onBluetoothDeviceFound 查找到的蓝牙设备数据里deviceId值不一样: 在安卓中deviceId即mac地址 在ios中deviceId即uuid 如何在ios端也能获取到mac地址? 通常情况下,蓝牙设备必定是有独一无二的mac地址,只是在

    2024年02月09日
    浏览(34)
  • ios开发 swift5 苹果手机怎样获取蓝牙设备的mac地址

    如设备蓝牙名为: 蓝牙名_mac app这边展示蓝牙名的时候,就只展示 蓝牙名 , 去掉后面的 _mac 其他用到蓝牙名的地方,都用这样的方式处理 如下图,箭头部分就是广播出的mac地址 如果不是通过搜索获取到peripheral,而是通过retrievePeripherals方法获取到peripheral。这个时候就只能获

    2024年02月03日
    浏览(37)
  • Android Studio制作手机App:通过手机蓝牙(Bluetooth)与STM32上的低功耗蓝牙(HC-42)连接通信,实现手机端对单片机的控制。

    背景: 本文的内容是针对单片机蓝牙模块(HC-42)开发的手机App。在这之前,我想先声明一点,手机与手机间的蓝牙连接方式”与“手机与HC间的蓝牙连接方式”是不一样的。原因就是手机搭配的是“经典蓝牙”模块,HC等蓝牙属于“低功耗蓝牙”模块。(二者的区别想了解的

    2024年02月04日
    浏览(33)
  • 微信小程序蓝牙连接 uniApp蓝牙连接设备

     蓝牙列表期待效果  代码  js里面注意getBLEDeviceCharacteristics获取特征值的时候,极个别设备参数write,read,notify是乱来的,需要自己打单独处理,通过对应write,read,notify 为true的时候拿到对应的uuid,

    2024年02月04日
    浏览(49)
  • iOS蓝牙开发中的问题

    这个问题只在iOS设备上才会出现,设备名称的缓存问题。 android手机上是一致的且与iOS设备上的kCBAdvDataLocalName字段一致,当出现不同时蓝牙调试app搜索的时候显示的是广播里的kCBAdvDataLocalName,但iphone设置里的蓝牙显示的是蓝牙名。 这里是关于蓝牙名称的官方描述 蓝牙设置了

    2024年02月07日
    浏览(23)
  • uniapp 蓝牙小程序-兼容安卓和iOS

    withTimeout方法可以在搜寻设备时等待指定的秒数,如果30秒内未搜索到则取消搜索  计算数据校验和: 校验字节等于命令字节与所有数据字节之和的反码。求和按带进位加 (ADDC)方式计算,每个进位都被加到本次结果的最低位(LSB)。 vue页面代码   js函数代码 

    2024年02月03日
    浏览(30)
  • uniapp 蓝牙连接设备 下发命令 监听蓝牙与设备的连接状态(兼容 微信小程序和支付宝小程序)

    1:创建蓝牙需要调用的Api文件 ly.js 2 在页面中使用index.vue 

    2024年04月14日
    浏览(33)
  • Uniapp连接蓝牙设备

    一、效果图 二、流程图 三、实现 UI

    2024年02月12日
    浏览(27)
  • 蓝牙鼠标HID设备连接流程

    首先我们需要大致知道下HID( The Human Interface Device )是啥,手机和鼠标分别扮演什么角色,这里我们大致了解下即可,然后又在看代码。HID 定义了蓝牙在人机接口设备中的协议、特征和使用规程。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Pro

    2024年04月09日
    浏览(35)
  • IOS面试题object-c 11-20

    11、解释self = [super init]方法? 容错处理, 当父类初始化失败,会返回一个nil, 表示初始化失败。 由于继承的关系, 子类是需要拥有父类的实例和行为, 因此, 我们 必须先初始化父类,然后再初始化子类 12、简述使用block有什么优点? 代码紧凑,传值、回调都很方便 ,省去了写代理

    2024年03月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包