在Android中将NFC标签设为只读,可以通过以下步骤实现:
<uses-permission android:name="android.permission.NFC" />
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
IntentFilter[] writeTagFilters = new IntentFilter[] { tagDetected };
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
Tag detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Ndef ndef = Ndef.get(detectedTag);
if (ndef != null) {
try {
ndef.connect();
if (ndef.isWritable()) {
// 将NFC标签设为只读
ndef.makeReadOnly();
Toast.makeText(this, "NFC标签已设为只读", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "NFC标签不可写入", Toast.LENGTH_SHORT).show();
}
ndef.close();
} catch (IOException | FormatException e) {
e.printStackTrace();
}
}
}
}
以上代码中,我们首先通过intent.getAction()方法判断是否检测到了NFC标签。然后,我们获取到NFC标签的Ndef对象,并判断该标签是否可写入。如果可写入,我们调用ndef.makeReadOnly()方法将NFC标签设为只读。
需要注意的是,以上代码只是一个简单的示例,实际开发中可能还需要处理更多的异常情况和逻辑。
推荐的腾讯云相关产品:腾讯云物联网平台(IoT Explorer)
腾讯云物联网平台(IoT Explorer)是腾讯云提供的一站式物联网开发平台,为开发者提供了丰富的物联网设备接入、数据存储、消息通信、规则引擎、设备管理等功能,帮助开发者快速构建物联网应用。
产品介绍链接地址:https://cloud.tencent.com/product/iotexplorer
领取专属 10元无门槛券
手把手带您无忧上云