Записывать / читать сообщения NDEF несколько раз в тег

Я отправляю сообщение NDEF на микроконтроллер. Запись и чтение работают нормально только для одной записи / чтения (но не для обеих одновременно). Это похоже на это: Пишите сообщение NDEF несколько раз в один и тот же тег? но это не помогло.

Мой код:

new Thread(new Runnable() {
            @Override
            public void run() {
    Ndef ndef = Ndef.get(detectedTag);
            try {
                ndef.connect();
            } catch (IOException e) {
                Log.e("connect", "Connection error");
                e.printStackTrace();
            }
            try {
                ndef.writeNdefMessage(getNdefMessage("Hey"));
                Log.e("write", "write ok");
            } catch (Exception e) {
                Log.e("write", "error write "+e.getMessage());
            }
            try {
                ndef.writeNdefMessage(getNdefMessage("Hey"));
                Log.e("write", "write ok");
            } catch (Exception e) {
                Log.e("write", "error write "+e.getMessage());
            }
            try {
                ndef.writeNdefMessage(getNdefMessage("Hey"));
                Log.e("write", "write ok");
            } catch (Exception e) {
                Log.e("write", "error write "+e.getMessage());
            }
            try {
                ndef.writeNdefMessage(getNdefMessage("Hey"));
                Log.e("write", "write ok");
            } catch (Exception e) {
                Log.e("write", "error write "+e.getMessage());
            }

            finally {
                try {
                    ndef.close();
                } catch (IOException e) {
                    Log.e("write", "ndef close");
                }
            }
 }
        }).start();

Если я хочу написать 4 раза, сначала все в порядке, после этого последние 3 ошибки. LogCat:

08-27 10:11:45.029  12850-12850/com.example.me.testnfc E/write﹕ write ok
08-27 10:11:45.299  12850-12850/com.example.me.testnfc E/write﹕ error write Tag is not ndef
08-27 10:11:45.379  12850-12850/com.example.me.testnfc E/write﹕ error write Tag is not ndef
08-27 10:11:45.459  12850-12850/com.example.me.testnfc E/write﹕ error write Tag is not ndef

Замена writeNdefMessage() с getNdefMessage() для чтения это работает...

Logcat:

08-27 10:25:26.584  24701-24701/com.example.me.testnfc E/Read﹕ Read ok
08-27 10:25:26.646  24701-24701/com.example.me.testnfc E/Read﹕ Read ok
08-27 10:25:26.709  24701-24701/com.example.me.testnfc E/Read﹕ Read ok
08-27 10:25:26.783  24701-24701/com.example.me.testnfc E/Read﹕ Read ok

РЕДАКТИРОВАТЬ: добавил Thread.sleep(2000) после каждой записи и Log.e("Detected TAG", detectedTag.toString()) в onNewIntent()Logcat:

08-27 10:50:57.988  15948-15948/com.example.me.testnfc E/Detected TAG﹕ TAG: Tech [android.nfc.tech.IsoDep, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
08-27 10:51:00.461  15948-16128/com.example.me.testnfc E/write﹕ write ok
08-27 10:51:02.221  15948-15948/com.example.me.testnfc E/Detected TAG﹕ TAG: Tech [android.nfc.tech.IsoDep, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
08-27 10:51:02.533  15948-16128/com.example.me.testnfc E/write﹕ write ok
08-27 10:51:04.312  15948-15948/com.example.me.testnfc E/Detected TAG﹕ TAG: Tech [android.nfc.tech.IsoDep, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
08-27 10:51:04.620  15948-16128/com.example.me.testnfc E/write﹕ write ok
08-27 10:51:06.405  15948-15948/com.example.me.testnfc E/Detected TAG﹕ TAG: Tech [android.nfc.tech.IsoDep, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
08-27 10:51:06.692  15948-16128/com.example.me.testnfc E/write﹕ write ok
08-27 10:51:08.480  15948-15948/com.example.me.testnfc E/Detected TAG﹕ TAG: Tech [android.nfc.tech.IsoDep, android.nfc.tech.NfcA, android.nfc.tech.Ndef]

0 ответов

Другие вопросы по тегам