在Android NFC应用程序中显示十六进制唯一ID NFC标签,可以按照以下步骤进行操作:
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
<manifest>
标签内添加以下代码:<uses-permission android:name="android.permission.NFC" />
<activity ...>
...
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc" />
</intent-filter>
</activity>
onCreate()
方法和onNewIntent()
方法,并添加以下代码:@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 检查设备是否支持NFC
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
// 设备不支持NFC
Toast.makeText(this, "设备不支持NFC", Toast.LENGTH_SHORT).show();
finish();
return;
}
// 检查NFC是否已经启用
if (!nfcAdapter.isEnabled()) {
// NFC未启用,跳转到系统设置界面
startActivity(new Intent(Settings.ACTION_NFC_SETTINGS));
Toast.makeText(this, "请先启用NFC", Toast.LENGTH_SHORT).show();
finish();
return;
}
// 处理从Intent中获取的NFC标签数据
handleNfcIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 处理从Intent中获取的NFC标签数据
handleNfcIntent(intent);
}
private void handleNfcIntent(Intent intent) {
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMessages != null) {
NdefMessage[] messages = new NdefMessage[rawMessages.length];
for (int i = 0; i < rawMessages.length; i++) {
messages[i] = (NdefMessage) rawMessages[i];
}
// 获取NFC标签的唯一ID
byte[] idBytes = messages[0].getRecords()[0].getId();
String idHex = bytesToHex(idBytes);
// 在界面上显示唯一ID
TextView textView = findViewById(R.id.textView);
textView.setText("NFC标签唯一ID:" + idHex);
}
}
}
private String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02X", b));
}
return sb.toString();
}
activity_main.xml
文件中添加以下代码:<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="#000000" />
这样,当你的Android设备靠近支持NFC的标签时,你的应用程序将会自动启动,并显示NFC标签的十六进制唯一ID。
腾讯云相关产品推荐:
请注意,以上推荐的腾讯云产品仅供参考,具体选择还需根据实际需求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云