如何获得BluetoothGattCharacteristic值格式类型?

时间:2016-05-25 09:28:14

标签: android bluetooth-lowenergy android-bluetooth android-ble

开发IOT应用程序时尝试与BLE外围设备进行通信。使用BLE Lollipop API。

每个BluetoothGattService都可以提供不同的BluetoothGattCharacteristic,每个都代表一定的值,可以是Read,Write或Notified。

Value is communicated in various formats。但是无法知道特定特征编码的格式。

我认为这个mKeySize可能是一个解决方案但是,它既不可访问也不在BluetoothGattCharacteristic中用于确定任何值输出。

 /**
 * Returns the deisred key size.
 * @hide
 */
/*package*/ int getKeySize() {
    return mKeySize;
}

我利用以下功能来检查所需的输出。

   String getStringValue (int offset)
   getIntValue(int formatType, int offset)
   getFloatValue(int formatType, int offset)

但它们仅在通信数据不复杂的某些情况下有用,例如

DeviceName - > (向GetStringValue)

BatteryLevel - >(getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8,0))

它们很容易诱饵,但像Peripheral Preferred Connection Parameters这样的特征无处可识别。

我已经使用静态hashmap根据指​​定的编号检索规范名称,这些编号似乎越来越大,包括所有适应的BLE配置文件。

我想知道有没有更好的方法可以正确获取BluetoothGattCharacteristics值?

此外,有不同的方法来编写特征值,在某些地方具体值,我该如何处理这种不确定性?

查看这个android应用程序BLEScanner,在很大程度上可以执行读写操作。

0 个答案:

没有答案