首页 > 解决方案 > 如何在不删除标签的情况下读取标签并在格式化后再次标签

问题描述

我正在编写一个将消息写入Factory-New标签的程序

public void onNewIntent(Intent intent) {
     Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

     Ndef ndefTag = Ndef.get(tagFromIntent);   //ndefTag will be null here

      .
      .
      .
      //read message , return if correct ,continue if empty or not correct
      .
      .
      .

     if (ndefTag == null) {

                //  try to format the Tag in NDEF


                NdefFormatable nForm = NdefFormatable.get(tagFromIntent);

                if (nForm != null) {

                    nForm.connect();

                    nForm.format(message);

                    nForm.close();

                }


            } else {

                ndefTag.connect();

                if (!ndefTag.isWritable()) {
                    Toast.makeText(getApplicationContext(), "Locked", Toast.LENGTH_SHORT).show();
                    locked = true;
                    //ndefTag.close();
                } else {

                    ndefTag.writeNdefMessage(message);

                    //ndefTag.makeReadOnly();
                    //ndefTag.close();
                    Toast.makeText(getApplicationContext(), "Write success", Toast.LENGTH_SHORT).show();
                }


            }


}

用消息格式化标签后,我想检查消息是否正确

但是“intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)”仍然得到相同的标签,没有书面消息,所以我必须删除标签并再次标记它

有什么方法可以再次调用 NFC 传感器进行标记?

还是更好的格式化和写入方式-> 读取?

标签: androidtagsnfcndef

解决方案


推荐阅读