Я пытаюсь прочитать данные с карты NFC, которая у меня есть для проекта. Он использует Mifare Classic 1K и имеет 16 секторов.
Я могу подключиться к карте и пытаюсь прочитать данные (я знаю, что данные, которые мне нужны, находятся во 2-м секторе - 2-м блоке). Я могу нормально сканировать карту, и она показывает мне размер карты, так что это гарантирует мне, что карта сканируется правильно, но данные, которые я получаю, когда я регистрирую «data.readBlock (2)», точно такие же, как ключЯ использую его для аутентификации ...
Что я понимаю из кода: Карта подключается Auth == true. Я могу получить общие сведения о карте, такие как количество секторов / количество блоков
protected void onNewIntent(Intent intent){
super.onNewIntent(intent);
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
MifareClassic tag = MifareClassic.get(tagFromIntent) ;
try {
//Variables
int sectorCount = tag.getSectorCount();
int tagSize = tag.getSize();
boolean auth;
//Keys
byte[] defaultKeys = new byte[]{};
defaultKeys = MifareClassic.KEY_DEFAULT;
//Connecting to tag
tag.connect();
//auth = true
auth = tag.authenticateSectorWithKeyA(2, defaultKeys);
byte[] data = tag.readBlock(2);
Log.i("OnNewIntent", "Data in sector 2: " + Arrays.toString(data));
} catch (IOException e) {
e.printStackTrace();
}
Ожидаемый = "Данные в секторе 2: The data in sector 2 block 2
"
Actual = "Данные в секторе 2: [B @ 4df9e32"
Выше Фактический результат изменяется при каждом сканировании карты
Я искал помощи в другом месте, но не смог найти ее, так как моя аутентификация, похоже, отличается от других людей. Любая помощь будет очень признателен, спасибо.