API version 14

NfcTagConnection.Transceiveメソッド

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, "読込エラー");
}

 

関連項目

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る