NFC 태그에 NDEF 레코드를 쓰는 방법
문제 이해
NDEF, 또는 NFC 데이터 교환 형식은 NFC 태그에 데이터를 저장하는 데 사용됩니다. NFC 태그에 NDEF 레코드를 쓰려면 다음을 수행해야 합니다.
쓰기 enableReaderMode API를 사용하는 NDEF 기록
인텐트 기반 NFC 작업을 사용하는 이전 접근 방식에는 제한 사항과 사용자 경험 문제가 발생했습니다. 이 문제를 해결하기 위해 더 새롭고 권장되는 접근 방식은 활성화ReaderMode API를 사용하는 것입니다.
이 API는 NFC 리더를 직접 제어하여 다음을 수행할 수 있도록 합니다.
구현 예
다음은 이 접근 방식을 구현하는 코드 조각입니다.
public class NFCActivity extends AppCompatActivity implements NfcAdapter.ReaderCallback { private NfcAdapter mNfcAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_nfc); mNfcAdapter = NfcAdapter.getDefaultAdapter(this); } @Override protected void onResume() { super.onResume(); if (mNfcAdapter != null) { Bundle options = new Bundle(); options.putInt(NfcAdapter.EXTRA_READER_PRESENCE_CHECK_DELAY, 250); mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_V | NfcAdapter.FLAG_READER_NFC_BARCODE | NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS, options); } } @Override public void onTagDiscovered(Tag tag) { Ndef mNdef = Ndef.get(tag); if (mNdef != null) { NdefRecord mRecord = NdefRecord.createTextRecord("en", "English String"); NdefMessage mMsg = new NdefMessage(mRecord); try { mNdef.connect(); mNdef.writeNdefMessage(mMsg); runOnUiThread(() -> { Toast.makeText(getApplicationContext(), "Write to NFC Success", Toast.LENGTH_SHORT).show(); }); try { Uri notification = RingtoneManager. getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); } catch (Exception e) { // Handle error playing sound } } catch (Exception e) { // Handle errors } finally { try { mNdef.close(); } catch (Exception e) { // Handle error closing tag } } } } }
이 접근 방식은 더 많은 작업을 보장합니다. 안정적이고 사용자 친화적인 NFC 글쓰기 경험을 제공합니다.
위 내용은 enableReaderMode API를 사용하여 NFC 태그에 NDEF 레코드를 쓰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!