ios中蓝牙开发
来源:互联网 发布:神经网络如何预测数据 编辑:程序博客网 时间:2024/04/29 15:55
首先,苹果提供了4个框架用于蓝牙连接
GameKit.framework(方法简单) 不过在ios7之后就过时了
MultipeerConnectivity.framework 用于ios设备之间,用于文件共享(仅限于沙盒)
ExternalAccessory.framework 第三方蓝牙交互,必须经过苹果MFI认证
coreBluetoot.framework 第三方蓝牙交互,必须支持蓝牙4.0
在这里简单的说一下那个过期的方法的简单步骤,毕竟简单,让大家有个印象
1. 创建选择其他蓝牙设备的控制器
2. 成为该控制器的代理
3. 显示蓝牙控制器
4. 实现代理方法:1.保存会话,2. 接受,回调函数,3.关闭显示蓝牙控制器
讲道理,上面不明所以也没关系。下面才是重点
首先我们来了解几个常识
BLE的全拼是(Bluetooth Low Energy)
- 每个蓝牙4.0设备都是通过服务(Service)和特征(Characteristic)
一个设备必然包含一个或多个服务,每个服务下面又包含若干个特诊 - 特征是与外界交互的最小单位
通过每个不同的特征代表不同的信息 - 服务和特征是用UUID来唯一标识
- 服务与特征,由设备上提供
那么接着看,BLE用到类吧
Main objects ——CBCentralManager——CBPeripheral
Data objects——CBService——CBCharacteristic
Helper objects——CBUUID
说了那么多,相信口水都干了,来波代码压压惊
#import "ViewController.h"#import <CoreBluetooth/CoreBluetooth.h>@interface ViewController ()<CBCentralManagerDelegate, CBPeripheralDelegate>/** * 外设 */@property (nonatomic, strong) NSMutableArray *peripherals;/** * 中心管理者 */@property (nonatomic, strong) CBCentralManager *mgr;@end@implementation ViewController- (NSMutableArray *)peripherals{ if (!_peripherals) { _peripherals = [NSMutableArray array]; } return _peripherals;}- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 1.创建中心设备 CBCentralManager *mgr = [[CBCentralManager alloc] init]; self.mgr = mgr; // 设置代理 mgr.delegate = self; // 2.利用中心设备扫描外部设备 /* 如果指定数组代表只扫描指定的设备 */ [mgr scanForPeripheralsWithServices:nil options:nil];}#pragma mark - CBCentralManagerDelegate- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI{ // 保存扫描到得外部设备 // 判断如果数组中不包含当前扫描到得外部设置才保存 if (![self.peripherals containsObject:peripheral]) { peripheral.delegate = self; [self.peripherals addObject:peripheral]; }}/** * 模拟点击, 然后连接所有的外设 */- (void)start{ for (CBPeripheral *peripheral in self.peripherals) { /** * 连接外设 */ [self.mgr connectPeripheral:peripheral options:nil]; }}/** * 连接外设成功调用 */- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral{ // 扫描外设中得服务 [peripheral discoverServices:nil];}/** * 连接外设失败调用 */- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error{}#pragma makr - CBPeripheralDelegate/** * 只要扫描到服务就会调用 * * @param peripheral 服务所在的外设 */- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error{ // 获取外设中所有扫描到得服务 NSArray *services = peripheral.services; for (CBService *service in services) { // 拿到需要的服务 if ([service.UUID.UUIDString isEqualToString:@"123"]) { // 从需要的服务中查找需要的特征 // 从peripheral中得service中扫描特征 [peripheral discoverCharacteristics:nil forService:service]; } }}/** * 只要扫描到特征就会调用 * * @param peripheral 特征所属的外设 * @param service 特征所属的服务 */- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error{ // 拿到服务中所有的特诊 NSArray *characteristics = service.characteristics; // 遍历特征, 拿到需要的特征处理 for (CBCharacteristic * characteristic in characteristics) { if ([characteristic.UUID.UUIDString isEqualToString:@"8888"]) { NSLog(@"设置闹钟"); } }}@end
0 0
- ios中蓝牙开发
- ios 蓝牙开发,蓝牙应用
- ios -蓝牙开发
- ios蓝牙开发
- IOS 蓝牙开发
- iOS 蓝牙开发备忘
- iOS蓝牙开发
- ios蓝牙开发(CoreBluetooth)
- iOS蓝牙开发流程
- iOS蓝牙Ble开发
- iOS 蓝牙 4.0 开发
- iOS蓝牙4.0开发
- iOS蓝牙4.0开发
- iOS蓝牙开发
- iOS开发-蓝牙模块
- iOS之蓝牙开发
- iOS 蓝牙开发流程
- iOS蓝牙开发--CoreBluetooth
- TYZ8/22 超氧化钾
- 封装图片轮播器
- sqlserver使用CHARINDEX搜索
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成
- Laravel入门
- ios中蓝牙开发
- [Codeforces 585D] Lizard Era: Beginning (折半枚举)
- 网络爬虫Java还是Python还是c++?
- 微信关注即可使用Wi-Fi是怎样实现的?
- windows10 安装MongoDB
- 2015 北京区域赛现场赛 部分题解
- 错误:'XXX/XXX' does not contain bitcode.
- java.lang.NumberFormatException null
- 利用git上传项目到github里面去的基本操作