Как получить информацию или nfc id программы для Android программно? - PullRequest
0 голосов
/ 05 июля 2019

Я пробовал код som в stackoverflow, но в результате получаем только идентификатор nfc с карты, я хочу получить идентификатор nfc моего андроида. Может кто-нибудь помочь мне, пожалуйста

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Вот как я это делаю:

Прежде всего вы должны инициализировать NfcAdapter, когда вам это нужно, этой строкой

mNfcAdapter = NfcAdapter.getDefaultAdapter(this);

Затем переопределить onNewIntent вот так

@Override
protected void onNewIntent(Intent intent) {
    Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

    Log.d(TAG, "onNewIntent: "+intent.getAction());

    if(tag != null) {
        Ndef ndef = Ndef.get(tag);
        readFromNFC(ndef);
    }else{
        toastUser(getApplicationContext(), "Problem reading NFC tag!\nPlease try again.", Toast.LENGTH_SHORT);
    }
}

Наконец прочитайте тег NFC

private void readFromNFC(Ndef ndef) {
    try {
        ndef.connect();
        NdefMessage ndefMessage = ndef.getNdefMessage();
        if(ndefMessage != null) {
            NdefRecord[] records = ndefMessage.getRecords();

            //records will produce an array of strings stored on the tag
            //iterate through them as handle as required.

        }
        ndef.close();

    } catch (IOException | FormatException e) {
        e.printStackTrace();
    }
}
0 голосов
/ 05 июля 2019

Попробуйте это:

val mTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

val id = byteArrayToHexString(mTag.getId());
...