首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏学海无涯

    iOS开发之BLE(二)——外设连接与断开

    步骤 引入CoreBluetooth,初始化中心管理者CBCentralManager并设置CBCentralManagerDelegate 监听CBCentralManager的状态,当是On的时候进行外设搜索 StoryBoard界面.png ViewController 代码 重点是CBCentralManagerDelegate中的代理方法,这些方法会随着CBCentralManager方法的调用进行对应的回调 class ViewController: UIViewController { // 中心管理者 var centralManager :CBCentralManager! self.view.addSubview(self.tabView) // 初始化中心管理者 self.centralManager = CBCentralManager 的状态 func centralManagerDidUpdateState(_ central: CBCentralManager){ // 蓝牙打开的时候进行扫描

    3.5K20发布于 2019-03-22
  • 来自专栏JusterZhu

    MASA MAUI Plugin IOS蓝牙低功耗(三)蓝牙扫描

    ,但是不同有安卓还有个适配器Adapter的概念,在ios中关于设备扫描、连接和管理外围设备的对象,都是通过CBCentralManager直接管理的,我们看一下他的初始化方法 init( delegate MasaMauiBluetoothService { private static BluetoothDelegate _delegate = new(); public static CBCentralManager _manager = new CBCentralManager(_delegate, DispatchQueue.DefaultGlobalQueue, new CBCentralInitOptions } } [Preserve] public override void UpdatedState(CBCentralManager 方法中指定了需要检查的蓝牙权限,BasePlatformPermission的EnsureDeclared方法用来检查是否在Info.plist文件添加了需要的权限,GetBleStatus方法通过 _cbCentralManager

    2.4K10编辑于 2022-12-07
  • 来自专栏哈雷彗星撞地球

    iOS CoreBluetooth 的使用讲解概念分析代码实战

    由于很多文章同时讲CBCentralManager和CBPeripheralManager,所以很容易傻傻分不清楚。 CBCentralManager 蓝牙外设管理中心,与手机的蓝牙硬件模板关联,可以获取到手机中蓝牙模块的一些状态等,但是管理的就是蓝牙外设。 而蓝牙有一些不同,app是外设管理中心(CBCentralManager),但是它也是客户端。 代码实战 第一步,创建CBCentralManager。 第二步,扫描可连接的蓝牙外设(必须在蓝牙模块打开的前提下)。 第三步,连接目标蓝牙外设。 第四步,查询目标蓝牙外设下的服务。 首先是是在我们app中,创建一个CBCentralManager: // 1.创建管理中心,这里也可以设置子线程 CBCentralManager *manager = [[CBCentralManager

    2.4K30发布于 2018-08-22
  • 来自专栏搜狗测试

    APP与硬件交互-蓝牙连接测试

    初始化CBCentralManager,进行蓝牙管理 - (void)viewDidLoad { [superviewDidLoad]; self.centralManager = [[CBCentralManager alloc] initWithDelegate:selfqueue:dispatch_get_main_queue()]; //创建实例进行蓝牙管理 } 该代理方法是用来判断手机蓝牙的状态的 -(void)centralManagerDidUpdateState:(CBCentralManager *)central { //蓝牙可用,开始扫描外设 搜索外围设备 //执行扫描动作之后,如果扫描到外设了,就会自动回调下面的协议方法 /** 发现符合要求的外设,回调 */ - (void)centralManager:(CBCentralManager 连接外围设备 //连接外围设备,中心管理者连接外设成功,如果连接成功就会回调这个协议方法 /** 连接成功 */­­­ - (void)centralManager:(CBCentralManager

    6.3K11发布于 2019-07-30
  • 来自专栏学海无涯

    iOS开发之蓝牙(一)

    :https://developer.apple.com/documentation/corebluetooth 重要的类与协议 CBCentral:中心设备,发起连接的是CBCentral CBCentralManager CBCharacteristic:外围设备的特征,包含在每个服务里 CBDescriptor:用于描述CBCharacteristic的信息或属性 CBCentralManagerDelegate:CBCentralManager 两种开发模式 中心模式的开发步骤 创建CBCentralManager实例进行蓝牙管理 搜索外围设备 连接外围设备 获得外围设备的服务 获得服务的特征 从外围设备读数据(读取或订阅) 给外围设备发送数据

    1.5K41发布于 2019-03-15
  • 来自专栏网罗开发

    iOS 蓝牙4.0开发使用(内附 Demo)

    )<CBCentralManagerDelegate,CBPeripheralDelegate> // 中心管理者(管理设备的扫描和连接) @property (nonatomic, strong) CBCentralManager 建立中心角色 self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 2. param peripheral 扫描到的设备 @param advertisementData 广告信息 @param RSSI 信号强度 */ - (void)centralManager:(CBCentralManager 连接失败 @param central 中心管理者 @param peripheral 连接失败的设备 @param error 错误信息 */ - (void)centralManager:(CBCentralManager } 4.3 连接成功 /** 连接成功 @param central 中心管理者 @param peripheral 连接成功的设备 */ - (void)centralManager:(CBCentralManager

    2.1K10发布于 2021-01-29
  • 来自专栏iOS 备忘录

    一文学会iOS蓝牙开发

    初始化 CBCentralManagerCBCentralManager负责的是蓝牙初始化、扫描、连接,初始化方法中会弹出申请蓝牙权限申请,不需要显式声明 dispatch_queue_t queue 扫描周边蓝牙设备 扫描周边蓝牙设备,CBCentralManager初始化之后,调用扫描周边蓝牙设备方法,扫描发现蓝牙设备。 CBCentralManager初始化时设置了delegate,所以需要实现CBCentralManagerDelegate的代理方法。 #pragma mark - CBCentralManagerDelegate - (void)centralManagerDidUpdateState:(CBCentralManager *)central 是因为在断开连接的方法里,默认使用了初始化的CBCentralManager,而没有判断蓝牙开关是否开启。

    3.6K20编辑于 2023-12-27
  • 来自专栏蓝牙技术

    蓝牙开发笔记

    创建中心设备管理者,并且设置代理 //初始化方式一:,不会提示出现"打开蓝牙允许'xxxx'连接都配件"的系统提示 _myCentralManager = [[CBCentralManager alloc ] initWithDelegate:self queue:nil options:nil]; //初始化方式二 _myCentralManager = [[CBCentralManager alloc

    40810编辑于 2023-09-27
  • 来自专栏Jacklin攻城狮

    [续]iOS开发中的这些权限,你搞懂了吗?

    需要导入头文件@import CoreBluetooth; 蓝牙的权限检测相对其他会复杂一些,需要在代理中检测蓝牙状态; 获取蓝牙权限: - (void)checkBluetoothAccess { CBCentralManager *cbManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; CBManagerState state = ; } } - (void)centralManagerDidUpdateState:(CBCentralManager *)central { //这个代理方法会在蓝牙权限状态发生变化时被调用 } 请求蓝牙权限 - (void)requestBluetoothAccess { CBCentralManager *cbManager = [[CBCentralManager alloc]

    2.2K20发布于 2018-09-12
  • 来自专栏Antony iOS Development

    iOS中的「回调(callback)」

    const NSInteger defaultDivicesCount = 8; @interface MyCnetralManager ()<CBCentralManagerDelegate> /// CBCentralManager 对象 @property (strong, nonatomic) CBCentralManager *bleManager; /// 对已经连接上的设备进行计数 @property (nonatomic )蓝牙状态改变后的回调(比如手机打开蓝牙、关闭蓝牙,都会调用这个方法) } // 手机每成功连接一个设备(某事件被触发),这个方法都会被调用(回调) - (void)centralManager:(CBCentralManager 对象 @property (strong, nonatomic) CBCentralManager *bleManager; /// 对已经连接上的设备计数 @property (nonatomic) central { // (手机)蓝牙状态改变后的回调(比如手机打开蓝牙、关闭蓝牙,都会调用这个方法) } // 成功连接一个蓝牙设备的回调(官方框架) - (void)centralManager:(CBCentralManager

    4.4K30发布于 2019-02-14
  • 来自专栏一“技”之长

    iOS开发之蓝牙通讯 原

    二、中心设备CBCentralManager         CBCentralManager是管理中心设备的管理类,其中重要方法如下: //设置中心设备代理 @property(assign, nonatomic serviceUUIDs; 在初始化管理中心完成后,会回调代理中的如下方法,我们必须实现如下方法: //这个方法中可以获取到管理中心的状态 - (void)centralManagerDidUpdateState:(CBCentralManager 扫描的结果会在如下代理方法中回掉: //peripheral 扫描到的外设 //advertisementData是外设发送的广播数据 //RSSI 是信号强度 - (void)centralManager:(CBCentralManager  *)central didConnectPeripheral:(CBPeripheral *)peripheral; //连接外设失败 - (void)centralManager:(CBCentralManager 恢复连接的外设扫描属性字典数组 NSString *const CBCentralManagerRestoredStateScanOptionsKey; */ - (void)centralManager:(CBCentralManager

    1.4K20发布于 2018-08-15
  • 来自专栏進无尽的文章

    扒虫篇-一次被AppStore多次拒绝的经历和常见被拒原因(持续更新)

    CBCentralManager 蓝牙的这个类你用到了吗? 我们先来了解下: BLE---bluetooth low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE。 CBCentralManager 就是 CoreBluetooth 框架中的。 Paste_Image.png 在上图中我们可以看到,SDK中确实有 CBCentralManager 这个类的使用,**可是,为什么工程中没有找到 CoreBluetooth 这个框架呢,我猜测是因为

    2K20发布于 2018-09-12
  • 来自专栏Jacklin攻城狮

    iOS开发中权限再度梳理

    需要导入头文件@import CoreBluetooth; 蓝牙的权限检测相对其他会复杂一些,需要在代理中检测蓝牙状态; 获取蓝牙权限: - (void)checkBluetoothAccess { CBCentralManager *cbManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; CBManagerState state = ; } } - (void)centralManagerDidUpdateState:(CBCentralManager *)central { //这个代理方法会在蓝牙权限状态发生变化时被调用 } 请求蓝牙权限 - (void)requestBluetoothAccess { CBCentralManager *cbManager = [[CBCentralManager alloc]

    1K40发布于 2018-09-12
  • 来自专栏一“技”之长

    iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计

    等待对方加入的提示视图     UIView * _waitOtherView;     //正在扫描附近游戏的提示视图     UIView * _searchGameView;     //设备中心管理对象     CBCentralManager 作为游戏加入这实现的方法======== //搜索周围游戏 -(void)searchGame{     if (_centerManger==nil) {         _centerManger = [[CBCentralManager     //设置为游戏加入方     _isCentral = NO; } //设备硬件检测状态回调的方法 可用后开始扫描设备 -(void)centralManagerDidUpdateState:(CBCentralManager dispatch_get_main_queue(), ^{         [self showAlert];          });     } } //发现外设后调用的方法 -(void)centralManager:(CBCentralManager @{CBConnectPeripheralOptionNotifyOnConnectionKey:@YES}];     } } //连接外设成功的回调 -(void)centralManager:(CBCentralManager

    1.5K60发布于 2018-08-15
  • 来自专栏网罗开发

    实战分享:Swift 蓝牙打印机数据排版

    var command = BTPrinter() var manager: CBCentralManager! 8841-43F4-A8D4-ECBE34729BB3" override init() { super.init() self.manager = CBCentralManager func centralManagerDidUpdateState(_ central: CBCentralManager) { var message = ""; discoverPeripheral(peripheral) } } // 3 func centralManager(_ central: CBCentralManager () } func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral

    1.6K10发布于 2021-09-29
  • 来自专栏哈雷彗星撞地球

    iOS Bluetooth 打印小票(二)

    HLBLEManager sharedInstance]; __weak HLBLEManager *weakManager = manager; manager.stateUpdateBlock = ^(CBCentralManager [weakManager scanForPeripheralsWithServiceUUIDs:nil options:nil didDiscoverPeripheral:^(CBCentralManager setDefaultStyle:SVProgressHUDStyleDark]; [SVProgressHUD showInfoWithStatus:info ]; }; 因为CBCentralManager [weakManager scanForPeripheralsWithServiceUUIDs:nil options:nil didDiscoverPeripheral:^(CBCentralManager }]; 这里给出了三种方式,前两种方式都需要先设置好搜索到蓝牙外设之后的回调, 即: manager.discoverPeripheralBlcok = ^(CBCentralManager

    3.7K20发布于 2018-08-22
  • 来自专栏iOS逆向与安全

    iOS上架小技能:从2022年6月30日起,所有支持创建帐户的应用程序都需要具备删除帐户的功能。

    API: _centralmanager =[[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_global_queue 具体的API有: _centralmanager =[[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_global_queue

    1.3K20编辑于 2022-08-22
  • 来自专栏正则

    iOS app中蓝牙的后台处理

    这时,app只需调用CBCentralManager类的connectPeripheral:options:方法,而且由于连接请求不会超时,当用户回家时,设备将重新连接,门锁将会打开。 举例来说,对于一个只使用一个CBCentralManager实例对象以实现中心角色的app来说,想要添加状态的保存和恢复功能,只要在初始化时指定CBCentralManagerOptionRestoreIdentifierKey 选项,并为中心管理者提供一个字符串作为“恢复标识”就可以了: myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue 为了恢复CBCentralManager对象的状态,使用centralManager:willRestoreState:方法提供的参数字典中包含的键。 你可以使用CBCentralManagerRestoredStatePeripheralsKey字典关键字以得到所有这个中心已连接或者想要连接的周边的列表: - (void)centralManager:(CBCentralManager

    5.5K30发布于 2021-11-04
  • 来自专栏iOS Developer

    Github源码推荐:(01.04):iOS开发蓝牙,启动动画,自定义Tabbar

    begin(); } //设置蓝牙委托 -(void)babyDelegate{ //设置扫描到设备的委托 [baby setBlockOnDiscoverToPeripherals:^(CBCentralManager

    82420发布于 2018-07-06
  • 来自专栏APP开发

    手机APP与蓝牙通讯的开发框架

    特点:提供CBCentralManager和CBPeripheral类,用于设备管理和数据传输。支持多设备连接和数据更新通知。需要处理异步回调,开发复杂度较高9。

    1.1K10编辑于 2025-03-06
领券