Чтение NfcV на Android ⇐ Android
-
Anonymous
Чтение NfcV на Android
В моем приложении (Java-студия Android) я пытаюсь прочитать полезную нагрузку из определенного тега с результатом типа ndefFormatable и NfcV. Как только я получу намерение и идентифицирую тег: Тег tag = Intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); Затем я создаю объект NFCV и выполняю следующую операцию:
NfcV nfcV = NfcV.get(tag); данные байта [] = новый байт [0]; byte[] id = tag.getId(); если (nfcV != ноль) { byte[] infoCmd = новый байт[2 + id.length]; // устанавливаем флаг «адресовано» infoCmd[0] = 0x20; // Получить командный байт информации о системе infoCmd[1] = 0x2B; //добавляем идентификатор тега System.arraycopy(id, 0, infoCmd, 2, id.length); System.arraycopy(id, 0, infoCmd, 2, 8); пытаться { nfcV.connect(); // ЗНАЧЕНИЕ infoCmd: [32, 43, 107, 32, -61, -97, 116, 77, 2, -32] // РЕЗУЛЬТАТ ДАННЫХ: [0, 11, 107, 32, -61, -97, 116, 77, 2, -32, -1, 0, 78] данные = nfcV.transceive(infoCmd); } поймать (IOException е) { е.printStackTrace(); } окончательно { пытаться { nfcV.закрыть(); } поймать (IOException е) { е.printStackTrace(); } } } Проблема в том, что данные, которые я получаю от nfc.transceive, не такие, как я ожидал. Я не знаю, связано ли это с неправильным содержанием infoCmd или просто с тем, что таким образом я не могу получить полезную нагрузку. с устройства. Если это может помочь, я хочу уточнить, что с помощью этого именно устройства nfc в другом коде С# я могу получить полезную нагрузку с помощью объекта ProximityDevice:
Сообщение ProximityMessage; вар rawMsg = message.Data.ToArray(); И я должен воспроизвести этот точный результат (rawMsg) в своем приложении для Android. По сути, я пытаюсь получить ту же полезную нагрузку, отправленную с того же устройства NFC, но в другом приложении, в данном случае Android.
В моем приложении (Java-студия Android) я пытаюсь прочитать полезную нагрузку из определенного тега с результатом типа ndefFormatable и NfcV. Как только я получу намерение и идентифицирую тег: Тег tag = Intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); Затем я создаю объект NFCV и выполняю следующую операцию:
NfcV nfcV = NfcV.get(tag); данные байта [] = новый байт [0]; byte[] id = tag.getId(); если (nfcV != ноль) { byte[] infoCmd = новый байт[2 + id.length]; // устанавливаем флаг «адресовано» infoCmd[0] = 0x20; // Получить командный байт информации о системе infoCmd[1] = 0x2B; //добавляем идентификатор тега System.arraycopy(id, 0, infoCmd, 2, id.length); System.arraycopy(id, 0, infoCmd, 2, 8); пытаться { nfcV.connect(); // ЗНАЧЕНИЕ infoCmd: [32, 43, 107, 32, -61, -97, 116, 77, 2, -32] // РЕЗУЛЬТАТ ДАННЫХ: [0, 11, 107, 32, -61, -97, 116, 77, 2, -32, -1, 0, 78] данные = nfcV.transceive(infoCmd); } поймать (IOException е) { е.printStackTrace(); } окончательно { пытаться { nfcV.закрыть(); } поймать (IOException е) { е.printStackTrace(); } } } Проблема в том, что данные, которые я получаю от nfc.transceive, не такие, как я ожидал. Я не знаю, связано ли это с неправильным содержанием infoCmd или просто с тем, что таким образом я не могу получить полезную нагрузку. с устройства. Если это может помочь, я хочу уточнить, что с помощью этого именно устройства nfc в другом коде С# я могу получить полезную нагрузку с помощью объекта ProximityDevice:
Сообщение ProximityMessage; вар rawMsg = message.Data.ToArray(); И я должен воспроизвести этот точный результат (rawMsg) в своем приложении для Android. По сути, я пытаюсь получить ту же полезную нагрузку, отправленную с того же устройства NFC, но в другом приложении, в данном случае Android.
Мобильная версия