HEX данные из BLE-характеристики в Byte Array, как преобразовать в String - PullRequest
0 голосов
/ 24 ноября 2018

Мое 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

...