swift - 不允许 Swift 蓝牙写入
问题描述
我尝试使用 Bluejay 库将 iphone 的命令写入 BT ble,如下所示
func write(command: Command) {
let weakSelf = self
Utils.delay(0.3) {
debugPrint("[\(self.getTodayString())]Writing to device: \(command.string)");
debugPrint("hunter: weakSelf.bdeCharacteristics = \(weakSelf.bdeCharacteristics) and bdeService= \(weakSelf.bdeService) , and isConnected = \(weakSelf.isConnected)");
weakSelf.bluejay.write(to: weakSelf.bdeCharacteristics, value: command.string) { (result) in
switch result {
case .success:
debugPrint("Write to sensor location is successful.")
//case .cancelled:
//debugPrint("Cancelled write to sensor location.")
case .failure(let error):
debugPrint("Failed to write to sensor location with error: \(error.localizedDescription)")
}
}
}
}
在写入命令时,记录如下:
“[2020-1-13 0:30:24]写入设备:SystemOn:\n\0”2020-01-13 00:30:24.247 [Bluejay] [main] > 请求写入特性:0000FFB2-0000- 1000-8000-00805F9B34FB,服务:0000FFB0-0000-1000-8000-00805F9B34FB... 2020-01-13 00:30:24.248 [Bluejay] [main] > 队列将启动 Bluejay.DiscoverService... 2020-01- 13 00:30:24.248 [Bluejay] [main] > 队列已删除 Bluejay.DiscoverService,因为它已完成。2020-01-13 00:30:24.249 [Bluejay] [main] > 队列为空,没有可更新的内容。2020-01-13 00:30:24.249 [Bluejay] [main] > 队列将启动 Bluejay.DiscoverCharacteristic... 2020-01-13 00:30:24.250 [Bluejay] [main] > Bluejay.WriteCharacteristic 添加到队列中UUID:15A4B937-7BCB-4F02-B6D5-96E04D480320。2020-01-13 00:30:24.250 [Bluejay] [main] > 队列已删除 Bluejay。DiscoverCharacteristic 因为它已经完成了。2020-01-13 00:30:24.251 [Bluejay] [main] > 队列将启动 Bluejay.WriteCharacteristic... 2020-01-13 00:30:24.252 [Bluejay] [main] > 开始写入特征:0000FFB2- 0000-1000-8000-00805F9B34FB,服务:845E44D2-42EE-7B03-CC5D-10675DF5DB09 上的 0000FFB0-0000-1000-8000-00805F9B34FB。2020-01-13 00:30:24.253 [Bluejay] [main] > 写入特征失败:0000FFB2-0000-1000-8000-00805F9B34FB,服务:0000FFB0-0000-1000-8000-00805F9B34FB 上 845E44D2-4-EE-4-B34FB CC5D-10675DF5DB09 出现错误:不允许写入。“无法写入传感器位置并出现错误:不允许写入。” 开始写入特征:0000FFB2-0000-1000-8000-00805F9B34FB,服务:845E44D2-42EE-7B03-CC5D-10675DF5DB09 上的 0000FFB0-0000-1000-8000-00805F9B34FB。2020-01-13 00:30:24.253 [Bluejay] [main] > 写入特征失败:0000FFB2-0000-1000-8000-00805F9B34FB,服务:0000FFB0-0000-1000-8000-00805F9B34FB 上 845E44D2-4-EE-4-B34FB CC5D-10675DF5DB09 出现错误:不允许写入。“无法写入传感器位置并出现错误:不允许写入。” 开始写入特征:0000FFB2-0000-1000-8000-00805F9B34FB,服务:845E44D2-42EE-7B03-CC5D-10675DF5DB09 上的 0000FFB0-0000-1000-8000-00805F9B34FB。2020-01-13 00:30:24.253 [Bluejay] [main] > 写入特征失败:0000FFB2-0000-1000-8000-00805F9B34FB,服务:0000FFB0-0000-1000-8000-00805F9B34FB 上 845E44D2-4-EE-4-B34FB CC5D-10675DF5DB09 出现错误:不允许写入。“无法写入传感器位置并出现错误:不允许写入。” 不允许写作。“无法写入传感器位置并出现错误:不允许写入。” 不允许写作。“无法写入传感器位置并出现错误:不允许写入。”
结果显示:无法写入传感器位置并出现错误:不允许写入。
注意:项目原始形式 swift 3 升级到 swift 4
解决方案
快速 4 后 CBCharacteristicWriteWithResponse 已更改为 withoutResponse
所以我用 withoutResponse 替换 withResponse ,这个问题就解决了。
推荐阅读
- reporting-services - 如何显示该日期没有值的日期
- java - 如何从文件中读取然后倒退?
- gurobi - 如何解决 gurobi 求解器中的导入错误
- python - 为什么这个类中的函数不使用更新的类属性?
- python - Numpy数组:不选择特定的行或列
- android - 如何使用改造 android 捕获图像和发布数据
- mysql - mysql查询不适用于条件
- stm32 - Keil uvision 5无法下载flash
- lotus-notes - Lotus Domino Designer - Java 日志类:openAgentLog 不工作
- php - 我在 wordpress 网站中找不到重定向代码