首页 > 其他分享 >IOS获取蓝牙状态

IOS获取蓝牙状态

时间:2023-04-05 09:44:09浏览次数:44  
标签:case central IOS 蓝牙 获取 state && print

IOS获取蓝牙状态

监听蓝牙状态

Link Binaries With Libraries中添加CoreBluetooto.framework

WX20230405-092153_2x

创建CBCentralManager对象

为了避免每次都获取蓝牙状态都弹窗,配置一下options

CBCentralManagerOptionShowPowerAlertKey设置为false

let options = [CBCentralManagerOptionShowPowerAlertKey: false]
bluetoothManager = CBCentralManager(delegate: self, queue: nil, options: options)

遵守CBCentralManagerDelegate,在代理方法centralManagerDidUpdateState中监听蓝牙改变的状态

func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {
        case .poweredOn:
            print("蓝牙开启且可用")
        case .unknown:
            print("手机没有识别到蓝牙,请检查手机。")
        case .resetting:
            print("手机蓝牙已断开连接,重置中。")
        case .unsupported:
            print("手机不支持蓝牙功能,请更换手机。")
        case .poweredOff:
            print("手机蓝牙功能关闭,请前往设置打开蓝牙及控制中心打开蓝牙。")
        case .unauthorized:
            print("手机蓝牙功能没有权限,请前往设置。")
            PLWToast("无蓝牙权限,请前往设置打开")
        default: break
        }
        isBlueToothOn = central.state != .poweredOff && central.state != .unauthorized && central.state != .unsupported
        NotificationCenter.default.post(name: deviceBluetoothNotification, object: isBlueToothOn, userInfo: nil)
}

监听到蓝牙状态改变发送通知,在其他需要用到蓝牙的地方添加NotificationCenter的Obsever即可

主动获取蓝牙状态

var isBlueToothOn: Bool {
        get {
            return bluetoothManager?.state != .poweredOff && bluetoothManager?.state != .unauthorized && bluetoothManager?.state != .unsupported
        }
        set {}
    }

直接获取CBCentralManagerstate,和上面监听代码中的state一样

标签:case,central,IOS,蓝牙,获取,state,&&,print
From: https://www.cnblogs.com/r1cardo/p/17288859.html

相关文章

  • 如何在vue3获取 DOM 元素
    获取dom的ref元素名称,要对应暴露的名称,不然会出现无效的dom报错,也就是拿到的是null在setup中,使用ref(null)获取dom不能直接在setup里面拿到dom的值,因为setup对应的生命周期是created,所以必须在后续的生命周期钩子里面拿到,比如onMounted注意:ref不要加冒号,直接写dom元素名称......
  • Js/Jquery获取自定义属性的方法
    html:<spanid="item"data-test='test'></span>方法一、原生JS的getAttribute获取自定义属性设置属性.setAttribute("属性","值")获取属性.getAttribute("属性")varspan=document.getElementById('item').ge......
  • js和jquery获取屏幕宽高以及加margin和padding等边距的宽高
    Javascript:网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth(包括边线的宽)网页可见区域高:document.body.offsetHeight(包括边线的高)网页正文全文宽:document.body.scrollWidth网页正文......
  • node子进程(Child Process)获取硬盘分区
    node  child_process文档 child_process.exec(command[,options][,callback])command <string> Thecommandtorun,withspace-separatedarguments.options<Object>cwd <string> Currentworkingdirectoryofthechildprocess. Default: null.env......
  • Django获取本地ip
    importsocketdefget_local_ip():"""获取本机IP地址:通用"""try:s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.connect(('8.8.8.8',80))ip=s.getsockname()[0]fina......
  • API获取商品评论?
    前言   小伙伴们好,前两天因为个人原因耽误了内容的更新,在这里和所有的小伙伴道个歉,今天CC和大家唠唠商品评论的这个话题,大家在网上购物的决策会因为《商品评论的好坏》吗,相信绝大的一部分的小伙伴都不用思考,脑袋里就直接蹦出来一句,肯定啊,肯定要根据其他买家的用户体验去决定......
  • 商品获价API调用说明:获取商品历史价格信息 代码分享
    接口名称:item_history_price公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)(获取测试key和secret接入)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheStrin......
  • C#获取网络状态两种方式
    第一种///<summary>///获取网络状态///</summary>///<paramname="IP"></param>///<returns></returns>publicstaticboolCheckedIPSpeed(stringIP){......
  • 无线短距通信技术标准:WIFI,蓝牙,ZigBee
    目前国际物联网最常用的无线通信技术标准主要有三种:WiFi、Zigbee和蓝牙。......
  • magento 获取产品的属性值
    magento采用强大的EAV设计方法,我们可以很方便的给商品添加任意数量的属性,那如何在前台获取这些属性值呢? magento同样提供了很方便的方式来读取它。使用$_product->getAttributeName()或者$_product['AttributeName']就可以获得指定名字属性的值,以颜色属性color为例,可以这样写 ......