Мое Android-приложение BLE в настоящее время может подключаться к моему оборудованию BLE и подключаться к серверу GATT.Я также могу включить уведомления и прочитать характеристику.Однако рекламируемая характеристика имеет формат HEX.На моем Сервисе я пытался получить данные в формате String или Byte Array, пробовал пару процедур преобразования, но все же я получаю бессмысленные данные (т. Е. ?? x и т. Д.)
Любые идеи о том, как получить / преобразоватьшестнадцатеричные данные?Служба:
private void broadcastUpdate(final String action,
final BluetoothGattCharacteristic characteristic) {
final Intent intent = new Intent(action);
if (UUID_BLE_SHIELD_RX.equals(characteristic.getUuid())) {
//final byte[] rx = characteristic.getValue();
final String rx=characteristic.getStringValue(0);
//final char rx=raw(char.value)
intent.putExtra(EXTRA_DATA, rx);
}
Основная активность:
private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Service.ACTION_GATT_DISCONNECTED.equals(action)) {
} else if (Service.ACTION_GATT_SERVICES_DISCOVERED
.equals(action)) {
getGattService(mBluetoothLeService.getSupportedGattService());
} else if (Service.ACTION_DATA_AVAILABLE.equals(action)) {
displayData(intent.getExtras().getString(Service.EXTRA_DATA));
}
Данные с модуля BLE, как видно из соединения NRF: (0x) 04-01-19-00-BE