ios蓝牙app开发环境(Ios蓝牙开发)
今天给各位分享ios蓝牙app开发环境的知识,其中也会对Ios蓝牙开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
iOS蓝牙开发实战
开发前提介绍 : 1. XCode 2.蓝牙手环(60) 3.苹果手机一部(1000)
规矩我懂 先上图
2014.12.2 蓝牙技术联盟发布
具备更低功耗, 更高的传输速度。 唤醒速度可以和zigbee媲美
蓝牙2.0 需要MIFI 认证,这个大家都知道 。 MIFI : Make for ipad , iphone , itouch 专门为苹果设备制作的设备
蓝牙4.0 : 本文章的主讲
开发框架 : CoreBluetooth
central: 中心,连接硬件设备(手机端连接蓝牙手环 等等智能设备)
peripheral: 外设, 被连接的设备(仅当外设在不断广播的时候 才能被发现)
service: 服务
characteristic: 特征
_manager = [[CBCentralManager alloc] initWithDelegate: self queue: nil];
在调用这个方法的时候 带来会调用
- (void)centralManagerDidUpdataState:(CBCentralManager *)central
返回 :
当前蓝牙的状态 :
if (central.state != CBManagerStatePoweredOn) // 就代表返回失败了 当然自己看一下这个枚举
[_manager scanForPeripheralsWithServices:#你的特征值# options: nil];
# : 如果特征值写的是nil 那么当前所以可以被连接管理的蓝牙都可以扫描到
但是这里有个坑 , 已经连接上的蓝牙 不会在代理里面被返回
对应代理 :
处理 :
centralManager: (CBCentralManager *)central didDiscoverPeripheral: (CBPeripheral *)peripheral advertisementData: (NSDictionar *id)advertisementData RSSI: (NSNumber *)RSSI{
if(peripheral.name != nil ![_perilist containsObject: peripheral]){
[_perilist addObject: peripheral];
}
}
连接外设失败 : disFailToConnectPeripheral
连接断开: didDisconnectPeripheral
连接成功: didConectPeripheral
IOS蓝牙开发心得
这几年一直在做IOS端的智能穿戴的APP,使用蓝牙开发的频率也比较高,所以对蓝牙开发还是有一定的了解,写篇文章记录总结。
理论知识,我就不详细说了。简单理解:我们手机是CBCentralManager,就是中心。我们的手环等是CBPeripheral,就是外设。
手机APP连接外设需要的步骤:搜索外设—连接外设—-查找外设的服务—-查找外设的服务对应特征。以上都是成功,不包括错误失败。
手机APP收发指令,都是通过 服务+特征 来进行处理。
具体的做法,我们可以看我封装的一个类,拖到项目中就可以用。
封装的类名为:BleOperatorManager
_bleOpt = [BleOperatorManager sharedInstance];
_bleOpt.delegate = self;
_bleOpt.realTimeUpdateDeviceListBlock = ^(NSArray *listArray, NSDictionary *rssiDic, NSDictionary *macDic) {
//实时返回搜索到的外设,listArray存了所有的外设结构(CBPeripheral *),macDic保存了外设的mac地址
};
_bleOpt.gainMacAddress = ^NSString *(NSDictionary *advertisementData) {
//解析mac地址,并返回给原类
NSData *data = advertisementData[@"kCBAdvDataManufacturerData"];
return @"FF:FF:FF:FF";
};
搜索:startScanDevice:(NSArray *)adverUUIDArray
停止搜索:stopScanDevice
连接外设:connectSelectPeripheral:(CBPeripheral *)peripheral
断连:disconnectCurrentPeripheral:(BOOL)hasRecord
前面说过,发送是需要 服务+特征 的,服务和特征,在连接蓝牙的时候,可以得到,当然也可以lightBlue查看。
然后发送就是:sendDataToBand:(NSData *)data WithServiceUUID:(NSString *)serviceUUID WithCharacteristicUUID:(NSString *)characteristicUUID withWriteType:(CBCharacteristicWriteType)writeType
如果发送是CBCharacteristicWriteWithResponse类型,那么发送完成后,就会调用
peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
//发送后的代理
}
接收数据:外设主动操作,我们只是对应代理回调:
peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
//收到的数据为:characteristic.value
}
还得有下面的配置:
项目加入CoreBluetooth库
plist文件加入:
Required background modes:App communicates using CoreBluetooth
蓝牙类: GitHub - wulang150/BleManager: 蓝牙模块
iOS蓝牙开发(4.0)详解
最近由于项目需要, 一直在研究蓝牙4.0,在这儿分享给大家, 望共同进步.
1.当前ios中开发蓝牙所运用的系统库是CoreBluetooth/CoreBluetooth.h。
2.蓝牙外设必须为4.0及以上(2.0需要MFI认证),否则无法开发,蓝牙4.0设备因为低耗电,所以也叫做BLE。
3.CoreBluetooth框架的核心其实是两个东西,peripheral和central, 可以理解成外设和中心,就是你的苹果手机就是中心,外部蓝牙称为外设。
4.服务和特征(service and characteristic):简而言之,外部蓝牙中它有若干个服务service(服务你可以理解为蓝牙所拥有的能力),而每个服务service下拥有若干个特征characteristic(特征你可以理解为解释这个服务的属性)。
5.Descriptor(描述)用来描述characteristic变量的属性。例如,一个descriptor可以规定一个可读的描述,或者一个characteristic变量可接受的范围,或者一个characteristic变量特定的单位。
6.我们使用的蓝牙模块是在淘宝买的, 大概十多元一个, ios大概每次可以接受90个字节, 安卓大概每次可以接收20个字节, 具体数字可能会浮动, 应该是与蓝牙模块有关。
// 加入权限访问, 否则上传AppStore会因为权限不足失败
由于硬件方面刚开始用蓝牙2.0跟我对接, 导致程序一直搜索不到设备.希望小伙伴们注意一下这个问题. 如果有不清楚的地方欢迎留言提问.
觉得有帮助的小伙伴, 可以动动勤劳的小手点个喜欢或者关注哦~
你们的肯定对我很重要!
iOS蓝牙开发(bluetooth)
蓝牙处理是16进制,并且每次传输最多是20个字节
CoreBluetooth 框架主要核心部分就是两个,peripheral 和 central。
发起连接的是中心设备,被连接的是外围设备。
中心模式:以app作为中心,连接其他外设的场景
外设模式:使用手机作为外设连接其他中心设备的操作场景
外设,服务,特征之间的关系如下:
如有疑问可以探讨,如有错误可以指正,欢迎补充,感谢支持🙏
关于ios蓝牙app开发环境和Ios蓝牙开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。