你想要做的事情根本不可能與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不知道該如何處理數據。 –