来源 : http://www.jianshu.com/p/38a4c6451d93
** 扫描 外设 或 连接 , 具体 DEMO 看 附件 。
// // ViewController.swift // 蓝牙中心设备Swift // // Created by 吴浩 on 2018/1/12. // Copyright © 2018年 wuhao. All rights reserved. // import UIKit import CoreBluetooth class ViewController: UIViewController { private let Service_UUID: String = "CDD1" private let Characteristic_UUID: String = "CDD2" @IBOutlet weak var textField: UITextField! private var centralManager: CBCentralManager? private var peripheral: CBPeripheral? private var characteristic: CBCharacteristic? override func viewDidLoad() { super.viewDidLoad() title = "蓝牙中心设备" centralManager = CBCentralManager.init(delegate: self, queue: .main) } @IBAction func didClickGet(_ sender: Any) { self.peripheral?.readValue(for: self.characteristic!) } @IBAction func didClickPost(_ sender: Any) { let data = (self.textField.text ?? "empty input")!.data(using: String.Encoding.utf8) self.peripheral?.writeValue(data!, for: self.characteristic!, type: CBCharacteristicWriteType.withResponse) } } extension ViewController: CBCentralManagerDelegate, CBPeripheralDelegate { // 判断手机蓝牙状态 func centralManagerDidUpdateState(_ central: CBCentralManager) { switch central.state { case .unknown: print("未知的") case .resetting: print("重置中") case .unsupported: print("不支持") case .unauthorized: print("未验证") case .poweredOff: print("未启动") case .poweredOn: print("可用") central.scanForPeripherals(withServices: nil, options: nil) } } func peripheralDidUpdateName(_ peripheral: CBPeripheral) { print("update--") print(peripheral) } /** 发现符合要求的外设 */ func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { self.peripheral = peripheral print("scan return: ---- ") if(peripheral != nil){ //print(peripheral.identifier.uuidString) print(peripheral.name) //print(advertisementData) } // 根据外设名称来过滤 // if (peripheral.name?.hasPrefix("WH"))! { // central.connect(peripheral, options: nil) // } //central.connect(peripheral, options: nil) } /** 连接成功 */ func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) { self.centralManager?.stopScan() peripheral.delegate = self peripheral.discoverServices([CBUUID.init(string: Service_UUID)]) print("连接成功") } func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) { print("连接失败") } func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) { print("断开连接") // 重新连接 central.connect(peripheral, options: nil) } /** 发现服务 */ func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) { for service: CBService in peripheral.services! { print("外设中的服务有:\(service)") } //本例的外设中只有一个服务 let service = peripheral.services?.last // 根据UUID寻找服务中的特征 peripheral.discoverCharacteristics([CBUUID.init(string: Characteristic_UUID)], for: service!) } /** 发现特征 */ func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { for characteristic: CBCharacteristic in service.characteristics! { print("外设中的特征有:\(characteristic)") } self.characteristic = service.characteristics?.last // 读取特征里的数据 peripheral.readValue(for: self.characteristic!) // 订阅 peripheral.setNotifyValue(true, for: self.characteristic!) } /** 订阅状态 */ func peripheral(_ peripheral: CBPeripheral, didUpdateNotificationStateFor characteristic: CBCharacteristic, error: Error?) { if let error = error { print("订阅失败: \(error)") return } if characteristic.isNotifying { print("订阅成功") } else { print("取消订阅") } } /** 接收到数据 */ func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { let data = characteristic.value self.textField.text = String.init(data: data!, encoding: String.Encoding.utf8) } /** 写入数据 */ func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { print("写入数据") } }
相关推荐
Swift-iOS蓝牙工具封装库是iOS开发者用于便捷地操控蓝牙设备的一个强大框架。这个库将复杂的Core Bluetooth框架进行了封装,提供了简洁易用的接口,使得蓝牙功能的集成变得更为直观和高效。在本文中,我们将深入探讨...
**Swift-BlueCap-iOS蓝牙LE框架详解** Swift-BlueCap-iOS蓝牙低功耗(BLE)框架是一款专为iOS设备设计的库,用于轻松、高效地与支持Bluetooth Low Energy (BLE) 的外围设备交互。BlueCap使得在Swift中进行蓝牙开发...
在项目中引入CoreBluetooth框架,可以通过Xcode的Target Settings -> General -> Frameworks, Libraries, and Embedded Content来添加。 1. **创建CBCentralManager**: 这是CoreBluetooth的核心类,代表了iOS设备...
**Swift-EasyBluetooth:iOS BLE蓝牙调试工具** Swift-EasyBluetooth是一款专为iOS开发者设计的BLE(Bluetooth Low Energy)蓝牙调试工具,它简化了iOS应用中的蓝牙开发流程,使得开发者可以更加高效地进行蓝牙功能...
**Swift中的蓝牙4.0(Bluetooth 4.0)** 在Swift编程环境中,开发者可以利用Apple的Core Bluetooth框架来实现蓝牙4.0 (也称为Bluetooth Low Energy或BLE)的通信功能。蓝牙4.0是一种低功耗、高效能的无线通信技术,...
Swift-OABluetooth是一个专为苹果平台(iOS和OS X)设计的轻量级蓝牙外设管理框架,它基于苹果的CoreBluetooth框架构建。这个框架的主要目的是简化蓝牙外设的交互,提供更便捷、高效的设备连接和管理功能。下面将...
在Swift中实现对蓝牙4.0(也称为BLE或Bluetooth Low Energy)的访问,是iOS设备与物联网设备交互的关键技术。这个"swift-iOS引用蓝牙4.0的小demo"提供了如何在Swift应用中使用Core Bluetooth框架的基础示例。Core ...
当我们谈论“swift-一个简洁高效的蓝牙库用于iOS和OSX”时,我们指的是使用Swift编写的特定于蓝牙低功耗(BLE,也称为Bluetooth Smart)的技术,这允许设备之间进行无线通信,特别适合于传输少量数据和低功耗设备。...
Swift-Bleu是一个专为Swift开发者设计的库,旨在简化CoreBluetooth框架的使用,从而更加高效、便捷地处理蓝牙低功耗(BLE)设备的通信。CoreBluetooth是苹果iOS、macOS、watchOS和tvOS操作系统提供的原生框架,用于...
在移动应用开发中,尤其是在iOS平台上,利用蓝牙低功耗(BLE)技术的iBeacons成为了位置服务的重要工具。Swift-Vicinity是一个专为iOS设计的开源库,它允许开发者在后台高效地进行iBeacon的检测和广播,极大地拓展了...
在iOS平台上进行硬件交互,尤其是涉及...总的来说,这个封装类是为了简化Swift开发者在iOS平台上利用Core Bluetooth框架进行蓝牙通信的过程,通过提供更高级别的抽象和便利的API,让蓝牙功能的集成变得更加直观和高效。
Swift-GJLightBlueTooth轻量级iOS蓝牙开发库是一个专为iOS平台设计的蓝牙开发框架,使用Swift语言编写,旨在简化蓝牙设备的交互过程,让开发者能够更便捷地实现蓝牙功能。在iOS设备上,蓝牙技术常用于物联网(IoT)...
在这个场景下,`Swift-基于BabyBluetooth的二次封装`是一个针对Swift开发者优化蓝牙开发的解决方案。 `BabyBluetooth`是一个轻量级的蓝牙CoreBluetooth框架,由Objective-C编写,方便在Swift项目中使用。它为开发者...
Swift-TKeyboard项目是一个创新的解决方案,它允许用户通过蓝牙连接将Mac键盘的输入直接传递到iPhone设备上,极大地提高了在iOS设备上进行文本输入的效率。这个项目是基于Swift编程语言实现的,属于Swift开发中的...
你可以创建自己的日志输出策略,比如将日志发送到服务器、保存到本地文件,甚至通过蓝牙设备发送。 2. **多级别支持**:Swift-CoolLog支持多种日志级别,如DEBUG、INFO、WARN、ERROR等,便于区分不同重要性的信息。...
7. **蓝牙(Bluetooth)**:当应用需要与其他设备通过蓝牙连接时,需要请求蓝牙权限。 8. **健康数据(HealthKit)**:应用访问用户健康数据时,需要请求健康数据权限。 9. **通知(Notifications)**:应用希望向...
在本项目中,我们聚焦于使用Swift来实现iOS设备对蓝牙4.0(也称为Bluetooth Low Energy,BLE)的开发,这是一项重要的技术,允许设备进行低功耗的数据传输,尤其适用于可穿戴设备、健康追踪器和其他物联网(IoT)设备...
在Swift开发中,有时我们需要引导用户进入系统的特定设置界面,比如调整应用的权限、蓝牙连接、Wi-Fi设置等。这通常涉及到iOS系统提供的URL Scheme,它允许应用间进行深度链接,实现不同应用间的跳转。本教程将详细...
标题 "swift-适用于iOS的基于接近的蓝牙LE共享" 指的是使用Swift编程语言实现的一个iOS应用功能,它利用了蓝牙低功耗(Bluetooth Low Energy, BLE)技术进行近距离数据共享。这种技术通常用于设备之间的无线通信,...