Android 读写 NFC 的基础知识
NFC(近场通信)是一种短距离无线通信技术,可以让设备在彼此靠近时交换信息。Android 提供了对 NFC 的支持,使其开发者能够轻松地实现读写 NFC 标签的功能。本文将介绍 Android 中如何实现 NFC 的读写,并提供相关的代码示例。
NFC 基础知识
NFC 工作在 13.56 MHz 的频带上,通常在 10 厘米以内的范围内有效。NFC 标签一般有三种类型:
- Type 1:可读写,速度慢,通常用于简单应用。
- Type 2:更常见,支持读写,具有较快的速度。
- Type 3:速度快,存储空间大,多用于专业应用。
- Type 4:灵活,可用于大多数用途。
Android 中的 NFC 操作
为了在 Android 应用中使用 NFC,首先需要在 AndroidManifest.xml
中声明 NFC 权限和特性。
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />
读取 NFC 标签
在实现 NFC 读取功能时,我们需要创建一个 NfcAdapter
对象并重写 onNewIntent
方法,以获取 NFC 标签的内容。
public class MainActivity extends AppCompatActivity {
private NfcAdapter nfcAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
resolveIntent(intent);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
resolveIntent(intent);
}
private void resolveIntent(Intent intent) {
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
// 读取数据
ReadNfc(tag);
}
}
private void ReadNfc(Tag tag) {
// 读取 NDEF 记录的示例
}
}
写入 NFC 标签
写入 NFC 标签的过程稍微复杂一些,我们需要使用 NdefRecord
和 NdefMessage
来创建要写入的数据。
private void WriteNfc(Tag tag) {
NdefMessage ndefMessage = new NdefMessage(new NdefRecord[]{
NdefRecord.createTextRecord("en", "Hello NFC!")
});
try {
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(ndefMessage);
ndef.close();
} catch (Exception e) {
e.printStackTrace();
}
}
类图
下面是用于表示 NFC 操作的类图:
classDiagram
class MainActivity {
+NfcAdapter nfcAdapter
+void onCreate(Bundle savedInstanceState)
+void onResume()
+void onNewIntent(Intent intent)
+void resolveIntent(Intent intent)
+void ReadNfc(Tag tag)
+void WriteNfc(Tag tag)
}
总结
通过以上的示例代码,我们可以看到,Android 为我们提供了一个简单的接口来读取和写入 NFC 标签。只需简单的代码,我们便能够实现与 NFC 标签的交互。这种技术在很多场景中都有广泛应用,如门禁控制、交通卡、支付等。希望本文能帮助您了解 Android 的 NFC 操作,期待您在实际开发中充分利用这一强大功能!