Конвертировать HEX в UINT32 Little Endian - PullRequest
1 голос
/ 07 марта 2020

Я программирую приложение в Android Studio и должен преобразовать шестнадцатеричное значение в UINT32 Little Endian в Java. Как мне это сделать?

Вот код:

public void onNewIntent(Intent intent) {
            Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            info.setText(bytesToHex(tag.getId()));

            String hex = bytesToHex(tag.getId()).replace(" ", "");

            long value = Long.parseLong(hex, 16);

            ByteBuffer buffer = ByteBuffer.allocate(4);
            buffer.asLongBuffer().put(value);
            buffer.order(ByteOrder.LITTLE_ENDIAN);
            long kort_id = buffer.asLongBuffer().get();

            SharedPreferences pref = getApplicationContext().getSharedPreferences("Storage", 0);
            SharedPreferences.Editor editor = pref.edit();

            editor.putString("KortID", String.valueOf(kort_id));
            editor.putBoolean("initializing", true);
            editor.apply();

            //Intent startMainActivity = new Intent(this, MainActivity.class);
            //startActivity(startMainActivity);
            //finish();
        }

И я получаю ошибку BufferOverflowException при запуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...