Note5 считывает UID классической карты Mifare

Я работаю над приложением, которое считывает только UID карт MIFARE Classic. Однако каждый раз, когда я сканирую карту на Galaxy Note 5, я получаю всплывающее сообщение «Тип тега NFC не поддерживается», а UID не отображается.

Я знаю это, потому что чип NFC моего телефона не совместим с Mifare Classic, но есть ли способ это исправить?

static void showToast() {
    if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(getIntent().getAction())) {
        Tag tag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG);

        Toast.makeText(MainActivity.this, 
                "The UID for this card is:" + bin2hex(tag.getId()), 
                Toast.LENGTH_LONG)
                .show();
    }
}

static String bin2hex(byte[] data) {
    return String.format("%0" + (data.length * 2) + "X", new BigInteger(1, data));
}

Заранее спасибо.


person Sireen Adel    schedule 10.09.2019    source источник
comment
Вы позаботились о том, чтобы зарегистрировать фильтры намерений для ACTION_TECH_DISCOVERED, предоставить XML со списком технологий, объявить разрешение на использование android.permission.NFC, объявить функцию использования android.hardware.nfc и сделать вызов showToast в обратном вызове onNewIntent() ваша активность?   -  person Padmanabha V    schedule 18.09.2019
comment
Да, я сделал все из них.   -  person Sireen Adel    schedule 18.09.2019


Ответы (1)


Galaxy Note 5 не поддерживает Mifare Classic. См. здесь: https://www.shopnfc.com/en/content/7-nfc-compatibility#samsung
Mifare Classic является собственностью NXP, поэтому, какое бы устройство Samsung не использовало чип NXP (Galaxy Note 2, Note 8, Note 9), Mifare classic поддерживается.
Поскольку оно требует замены оборудования, вы не сможете заставить это работать на своем Note 5.

person Padmanabha V    schedule 16.09.2019
comment
Спасибо большое. Я скачал приложение из магазина игр, и оно очень хорошо работает на моей карте mifare. Вы хоть представляете, как они это делают? - person Sireen Adel; 18.09.2019
comment
Могу ли я узнать название приложения - person Padmanabha V; 18.09.2019
comment
Приложение NXP DWM - person Sireen Adel; 18.09.2019
comment
Этот поток stackoverflow.com/questions/35906081/ указывает, что на рутированном телефоне возможно включить поддержку Mifare classic. У меня нет кода настроек Samsung для платформы NFC, чтобы проверить, где они отключили поддержку. Эти приложения NXP, скорее всего, используют Foreground Dispatch System. Чтобы подтвердить, можете ли вы сказать, обнаруживает ли приложение NXP DWM тег, даже если он НЕ находится на переднем плане? Другая возможность заключается в том, что карта, которую вы используете, имеет AAR, чтобы подтвердить общий дамп карты, полученный с помощью приложения NXP TagInfo. - person Padmanabha V; 18.09.2019
comment
Он работает только на переднем плане, когда я попробовал его в фоновом режиме, появилось сообщение об ошибке «Тип тега NFC не поддерживается». - person Sireen Adel; 18.09.2019
comment
Если достаточно прочитать UID, когда ваше приложение находится только на переднем плане, добавьте возможности NFC переднего плана в соответствии с developer.android.com/guide/topics/connectivity/nfc/. Если вам нужна функциональность с вашим приложением в фоновом режиме, вы можете попробовать предложения в другой ветке. - person Padmanabha V; 18.09.2019
comment
Большое спасибо, я попробую. - person Sireen Adel; 18.09.2019
comment
Я использовал диспетчеризацию переднего плана, но код все еще не показывает UID. - person Sireen Adel; 24.09.2019
comment
Я считаю, что первоначальная проблема с неподдерживаемым типом тега NFC больше не наблюдается. Какая ошибка или поведение наблюдается сейчас при включенной диспетчеризации переднего плана? Предлагаем вам взять логарифм для рабочего (приложение NXP DWM) и нерабочего (ваше приложение) случаев и сравнить. - person Padmanabha V; 24.09.2019
comment
Это сообщение Тип тега NFC не поддерживается, по-прежнему появляется, и ничего не меняется. - person Sireen Adel; 24.09.2019