iOS表示BLE特征未通知

问题描述

我正在使用Adafruit Feather BLE模块进行修补。

与此伴随的是AT命令集,我正在使用它来创建自定义服务和特征。我正在使用它的通知选项。 iOS端代码说该特性正在通知。我进行了一些谷歌搜索,有人说需要一个描述符来通知特征。所以我加了一个,但还是没有成功。

这是代码的Adafruit端-​​ p>

AT+GATTADDSERVICE=UUID128= 3d-e8-3e-34-dc-98-43-d0-87-de-3d-97-73-8b-ba-b6
AT+GATTADDCHAR=UUID=0xABCD,PROPERTIES=0x10,MIN_LEN=2,VALUE='01',DATATYPE=1,DESCRIPTION=TEST,PRESENTATION=17-00-AC-27-01-00-00

我在串行监视器中看到它成功。之后,我每隔几毫秒就写一次BLE模块。

在iOS端,这是我得到的日志-

characteristics: [<CBCharacteristic: 0x2817a4180,UUID = ABCD,properties = 0x10,value = (null),notifying = NO>] 

我正在使用示例随附的标准代码。 我使用的属性值不正确吗? Adafruit文档说0x10是要进行通知

解决方法

调试说明中的

notifying = no 表示您尚未为此特性启用通知(即,其isNotifying属性为false)。这并不意味着该特征不支持通知。

您需要致电setNotifyValue(true,for: characteristic)启用通知。

然后您将接到didUpdateNotificationState委托回调的电话,以告诉您通知是否已成功启用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...