Как получить BluetoothGattCharacteristic тип значения типа?

При разработке приложения для IOT попытался установить связь с периферийным устройством BLE. Использование BLE Lollipop API.

Каждый BluetoothGattService может предоставлять различные BluetoothGattCharacteristic, каждый из которых представляет определенное значение, которое может быть «Чтение», «Запись» или «Уведомление».

Значение передается в различных форматах, Но нет способа узнать, в каком формате закодирована конкретная характеристика.

Я думал, что этот 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)

Но они были полезны только в определенных случаях, когда передаваемые данные не были сложными, например

Имя устройства -> (getStringValue)

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

Они были легкой приманкой, но такие характеристики, какПараметры периферийного предпочтительного соединения нигде не быть признанным.

Я уже использовал статическую хэш-карту для получения Имени спецификации на основе назначенного им номера, размер которого, кажется, увеличивается в размерах и включает в себя весь адаптированный профиль BLE.

Я хотел бы знать, есть ли лучшие методы, доступные для получения значения BluetoothGattCharacteristics надлежащим образом?

Кроме того, существуют разные способы записать характеристическое значение и в определенных местах конкретное значение, как я должен подходить к этой неопределенности?

Проверьте это приложение для AndroidBLEScanner, в значительной степени может выполнять чтение и запись.

Ответы на вопрос(0)

Ваш ответ на вопрос