API version 14
iOSAndroidWindows
|
説明 |
NFCタグに対し任意のデータを送信し、その応答データを取得します。 送信可能なデータの形式やプロトコルなどの詳細は、対象のNFCタグのリファレンスマニュアルなどを参照してください。
|
|
|
呼出形式 |
var receivedData = nfc.Transceive( sendData )
|
|
|
戻り値 |
NFCタグから受信したバイト列をByteArrayオブジェクトで返します
|
|
|
引数 |
String sendData |
NFCタグに送信するバイト列。
|
|
例外 |
RTM-48 |
端末にNFCリーダ/ライタが存在しません。 |
|
|
RTM-49 |
端末のNFCリーダ/ライタが有効になっていません。 |
|
|
RTM-50 |
NFCタグへのアクセスに失敗しました。
|
|
使用例 |
/* NFC Type-VのタグでGet system informationコマンドを発行する */
var nfc = null;
try {
nfc = Runtime.DiscoverNfcTag("NFC Type-Vのカードをかざしてください");
} catch(e) {
MessageBox("NFCタグ探索失敗");
return;
}
if(!nfc.IsTypeVTag) {
nfc.Close(false, "Type-V以外のタグが読み取られました");
return;
}
try {
nfc.SetMessage("接続済");
var request = new ByteArray(0x02, 0x2B);
var response = nfc.Transceive(request);
/* NFCとの通信を終了 */
nfc.Close(true, "読込終了");
/* レスポンスの確認 */
/* response flagsの1bit目が1ならエラー */
var responseFlags = response.ByteAt(0);
if (responseFlags % 2 != 0) {
MessageBox("エラーが発生しました");
return;
}
/* responseの3バイト目から8バイト分がID
* 使用例ではエンディアンを並び替えている。*/
var uid = new ByteArray(
response.ByteAt(9),
response.ByteAt(8),
response.ByteAt(7),
response.ByteAt(6),
response.ByteAt(5),
response.ByteAt(4),
response.ByteAt(3),
response.ByteAt(2)
);
print("ID:", uid.ToHexString());
} catch(e) {
nfc.Close(false, "読込エラー");
}
|
|
|
関連項目 |
||