你想要做的事情根本不可能与Android权利否(可能不会在未来)。
您当前的读取防撞标识符(UID,PUPI,或不管它是要求您阅读特定的标签平台):
result = ByteArrayToHexString(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID));
防撞标识符是非常低的一部分协议层。虽然Android不支持基于主机的卡模拟(请参阅Android HCE),但Android API无法控制诸如UID之类的低级参数。通常,它也不可能在NFC标签上改变该信息。
需要注意的是,如果你的标签也包含在NDEF格式的一些高层次的数据,你可以获取,使用:
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage msg = null;
if ((rawMsgs != null) && (rawMsgs.length > 0)) {
msg = (NdefMessage)rawMsgs[0];
}
if (msg != null) {
// do something with the received message
}
的Android不支持存储上(写的)这些NDEF消息的NFC标签,它也支持发送NDEF消息到其他NFC设备(见Beaming NDEF Messages to Other Devices)。
例如,存储在NFC标签NDEF消息,你可以使用:
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Ndef ndef = Ndef.get(tag);
if (ndef != null) {
try {
ndef.connect();
ndef.writeNdefMessage(msg);
} finally {
ndef.close();
}
} else {
NdefFormatable ndefFormatable = NdefFormatable.get(tag);
if (ndefFormatable != null) {
try {
ndefFormatable.connect();
ndefFormatable.format(message);
} finally {
ndefFormatable.close();
}
}
}
或为了通过对等网络模式(Android Beam功能)将消息发送到另一个NFC设备,你可以使用:
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcAdapter.setNdefPushMessage(msg, this);
感谢乌拉圭回合的答案..我要去跟着UR结构,所以我有一个问题...我应该在哪里我去送串在设备上安装此应用吗? –
是的,你还需要一个应用程序作为接收器。如果没有特定的应用,Android不知道该如何处理数据。 –