蓝牙传输数据演示

  • 在上一小节中,我们一起开发了基于蓝牙通讯的工具类,该类中详细的实现蓝牙连接流程中的每一个环节

  • 本小节我们就以给小米手环发送数据使其震动来演示我们工具类的用法

  • 工具类本身具有通用性,属于MVC中的M层,只负责处理自身负责的处理,不处理任何的业务逻辑和UI

  • 我的小米手环的identifer:60C955B2-8F7C……

    • 后面我就不写了,每一个手环的唯一标识符都是不一样的
  • 能够让小米手环震动的特征的UUID:2A06
  • 能够让小米手环震动的数据:2(二进制数据)

  • 示例效果:1。点击开始扫描按钮,搜索蓝牙设备,并且将外设的信息显示在tableview中 2.点击指定的tableviewcell,让小米手环震动


#import "ViewController.h"#import "HMBluetoothManager.h"@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (weak, nonatomic) IBOutlet UITableView *tableView;@end//我的小米手环dentifier
#define kIdentifier @"60C955B2-8F7C-8784-665F-D05E520F5A12"@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.
}#pragma mark -扫描按钮
- (IBAction)scanButtonClick:(id)sender {kHMBluetoothManager.UUID = @"2A06";//1.开始扫描[kHMBluetoothManager BeginScanPeripheral:^(CBPeripheral *peripheral) {//刷新tableview[self.tableView reloadData];}];
}#pragma mark -tableviewdelegate- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{return kHMBluetoothManager.scanArr.count;
}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];CBPeripheral *peripheral = kHMBluetoothManager.scanArr[indexPath.row];cell.textLabel.text = [peripheral.identifier UUIDString];cell.detailTextLabel.text = peripheral.name;return cell;
}//点击cell连接设备
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{//获取点击的外设CBPeripheral *peripheral = kHMBluetoothManager.scanArr[indexPath.row];//判断是否是我的小米手环(专门为了测试买的),因为蓝牙会扫描到周边很多外设,我们通过唯一标识符来判断自己的外设if ([[peripheral.identifier UUIDString] isEqualToString:kIdentifier]) {//3.连接设备[kHMBluetoothManager connectPeripheral:peripheral Completion:^(CBPeripheral *peripheral, NSString *connectState) {NSLog(@"%@",connectState);//4.发送数据//实际开发中,扫描特征会有一定的延迟,我们可以通过回调或者通知来获取发现特征的回调,这里为了快速演示,我就设置了3s的延迟dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{Byte *byte[1];byte[0]= 02 & 0xff;NSData *data = [NSData dataWithBytes:byte length:1];[kHMBluetoothManager writeValue:data toPeripheral:kHMBluetoothManager.currentPeripheral characteristic:kHMBluetoothManager.currentCharacteristic];});}];}else{NSLog(@"这不是你的小米手环");}
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

04-iOS蓝牙传输数据演示相关推荐

  1. 小米手环iOS开发实战(一):iOS蓝牙框架CoreBluetooth

    小米手环iOS开发实战(一):iOS蓝牙框架CoreBluetooth 本项目为对小米手环进行二次开发,利用了小米手环蓝牙连接并不安全的特性,连接后可以获取手环数据,并可修改数据. 本实例使用Swif ...

  2. iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]

    一.蓝牙基础知识 (一)常见简称 1.MFI  make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复 ...

  3. iOS蓝牙原生封装,助力智能硬件开发

    代码地址如下: http://www.demodashi.com/demo/12010.html 人工智能自1956年提出以来,一直默默无闻,近年来人工智能的发展得到重视逐渐发展起步,智能硬件.智能手 ...

  4. iOS蓝牙BLE4.0通信功能

    概述 iOS蓝牙BLE4.0通信功能,最近刚学的苹果,为了实现蓝牙门锁的项目,找了一天学习了下蓝牙的原理,亲手测试了一次蓝牙的通信功能,结果成功了,那么就把我学习的东西分享一下. 详细 代码下载:ht ...

  5. iOS 蓝牙开发 BabyBluetooth蓝牙库介绍

    BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容iOS和Mac OS X. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮 ...

  6. 今日分享-ios蓝牙

    1. ios蓝牙库的基本介绍-CoreBluetooth 2. CoreBluetooth使用详解 3. 相关问题 1. ios蓝牙库的基本介绍-CoreBluetooth 首先熟悉相关名词:Cent ...

  7. iOS - 蓝牙开门智能门锁

    蓝牙的实现原理网上很多 在此就不一一描述了 有需要的可以看以下的文章学习 在ios 的开发中iBeacon和BLE的区别 iBeacon介绍 iOS蓝牙空中升级(固件升级) 本文主要是写实现过程: g ...

  8. iOS 蓝牙开发资料记录

    一.蓝牙基础认识:   1.iOS蓝牙开发:   iOS蓝牙开发:蓝牙连接和数据读写   iOS蓝牙后台运行  iOS关于app连接已配对设备的问题(ancs协议的锅)          iOS蓝牙空 ...

  9. iOS蓝牙学习(一)

    最近在学蓝牙开发,就去网上收集了一些文章看,自己做了一个总结,下面就分享出来. 前提: iOS蓝牙开发使用的API是:Core Bluetooth 正常情况下需要两台真实的蓝牙4.0设备(当然也可以使 ...

最新文章

  1. 在C++中对字符串std::string使用switch/case语句
  2. 富士康c语言试卷答案,2015富士康笔试题目及答案
  3. java实现-两个栈实现一个队列和两个队列实现一个栈
  4. SAP后台作业记录操作
  5. Linux笔记:认识shell
  6. session 原理
  7. CSS3实现漂亮ToolTips
  8. 微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?
  9. 2014年第一季度总结报告
  10. 虚拟化+云服务器,虚拟化+云服务器
  11. 强化学习算法在京东广告序列推荐场景的应用
  12. SpringSecurity系列(三) Spring Security 表单登录
  13. mysql主从延迟设置
  14. ubuntu14.04中安装opencv2.4.11
  15. 计算机毕设应用型开题报告,毕设开题报告范文.doc
  16. Python递归绘制谢尔宾斯基三角形
  17. python实现手机通讯录_Python 实现简单的电话本功能
  18. AR图书,看着很美其实有点坑
  19. UG NX二次开发(C#)-装配-添加组件AddComponent
  20. Ubuntu 更新错误修复大全

热门文章

  1. Android蓝牙无法通信,android.bluetooth.BluetoothSocket无法连接
  2. java 发送附件_Java 基于javaMail的邮件发送(支持附件)
  3. 风吹来_风吹年年,雪落片片
  4. Java 文件压缩与解压缩
  5. 寻找百度翻译参数,实现百度翻译
  6. 阿里广告技术最新突破:全链路联动-面向最终目标的全链路一致性建模
  7. Non-local Neural Networks:非局部神经网络
  8. 图像分割综述:FCN、U-Net、PSPNet、DeepLab
  9. HDU1426 Sudoku Killer DFS
  10. 陕西师范大学第七届程序设计竞赛 C题 iko和她的糖