android.nfc.tech.NdefFormatable
时间: 2023-11-18 15:03:04 浏览: 294
`android.nfc.tech.NdefFormatable` 是 Android 中的一个 NFC 技术规范,它定义了一组 API,用于格式化一个空的 NFC 标签或卡片,并向其中写入 NDEF 消息。
使用 `android.nfc.tech.NdefFormatable`,你可以在 Android 设备上格式化一个空的 NFC 标签或卡片,然后向其中写入自己的数据。以下是一个示例代码片段,可以帮助你使用 `android.nfc.tech.NdefFormatable` 来格式化一个空的 NFC 标签或卡片,并向其中写入一个包含文本数据的 NDEF 消息:
```java
private void writeNdefMessage(Tag tag) {
NdefMessage ndefMessage = createNdefMessage("Hello, NFC World!");
try {
NdefFormatable ndefFormatable = NdefFormatable.get(tag);
if (ndefFormatable != null) {
ndefFormatable.connect();
ndefFormatable.format(ndefMessage);
ndefFormatable.close();
Toast.makeText(this, "NDEF message written successfully", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "NDEF format not supported", Toast.LENGTH_LONG).show();
}
} catch (IOException | FormatException e) {
e.printStackTrace();
Toast.makeText(this, "NDEF message writing failed", Toast.LENGTH_LONG).show();
}
}
private NdefMessage createNdefMessage(String text) {
NdefRecord record = NdefRecord.createTextRecord(null, text);
return new NdefMessage(new NdefRecord[]{record});
}
```
上面的代码片段中,`writeNdefMessage()` 方法使用 `NdefFormatable` 来格式化一个空的 NFC 标签或卡片,并向其中写入一个包含文本数据的 NDEF 消息。`createNdefMessage()` 方法用于创建一个文本类型的 NDEF 记录。
需要注意的是,不是所有的 NFC 标签或卡片都支持 `android.nfc.tech.NdefFormatable`。如果你想向一个已经被格式化过的 NFC 标签或卡片中写入数据,你应该使用 `android.nfc.tech.Ndef`。并且在写入数据之前,你需要先检查这个 NFC 标签或卡片是否支持 NDEF,并且是否已经被格式化过。
阅读全文