首页 APP开发 正文

ios蓝牙app开发环境(Ios蓝牙开发)

APP开发 1572
今天给各位分享ios蓝牙app开发环境的知识,其中也会对Ios蓝牙开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、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蓝牙开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码