IOS蓝牙BLE写值返回 "Unknown error"

标签 ios ios6 bluetooth bluetooth-lowenergy

我正在 IOS 6 上开发我的第一个智能蓝牙 (BLE) 软件。

我能够接收通知并读取与 Nordic Development kit 交换的特征值包括来 self 创建的自定义 GATT 配置文件(具有用于服务和特性的特定 UUID)。

但是,每次我尝试在特性中写入一个值时,我都会收到错误消息 Unknown Error 而没有更多信息。没有错误代码,没有来自 XCode 的 CoreBluetooth[WARNING]

我已将我的服务和特征属性设置为无需身份验证即可写入。使用开发 Nordic 工具,我可以在我的特征中写入一个值,所以这不会是权限问题。

这是我用来写入值的代码

uint16_t val = 2;
NSData * valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)];
[testPeripheral writeValue:valData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

以及出现“Unknown error”错误的回调

 - (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:
                     (CBCharacteristic *)characteristic error:(NSError *)error
{   
    NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID);
    NSLog(@"With error: %@", [error localizedDescription]);

    //code...
}

控制台中的错误文本是

Did write characteristic value : <068c0e00 fedc070c 050b3200 04> with ID Unknown (<4444>)
With error: Unknown error.

错误信息中的值不是我想写的??!! 444 是我用于测试的正确 UUID。

要写入的值的长度重要吗?

在网上看了很多资料并尝试了很多测试之后,我需要 SO 来弄清楚。 有什么建议吗?

最佳答案

您应该检查 CBCharacteristic 的属性。如果属性指示 Characteristic 不可写,您可能会收到此错误。

祝你好运。

关于IOS蓝牙BLE写值返回 "Unknown error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16623013/

相关文章:

ios - 使特定的 UITableViewCells 具有不同的背景颜色

ios - 动画类卡片app iphone

html - 全屏 api HTML5 和 Safari (iOS 6)

ios - 如何获取蓝牙连接设备的电池电量

Bluetooth Low energy最佳能耗策略

javascript - PushNotificationIOS.presentLocalNotification() 在 native react 中不起作用

iphone - 获取 UIView 的容器/UIViewController

iphone - pageviewcontroller 中的 PageCurlEffect 与工具栏重叠

iphone - iOS Autolayout - 如何在 View 之间设置两个不同的距离,取决于屏幕高度

java - 安卓 & 蓝牙 & Arduino