API version 14

Runtime.DiscoverNfcTagメソッド変更履歴

iOSAndroidWindows

 

説明

NFCタグの探索を行います。タグが発見されるかキャンセルされるまで処理をブロックします。

iOS版
本メソッドが呼び出されてから一定時間タグが発見できなかった場合、タグの探索は自動的にキャンセルされます。

 

NFC Type-F(JIS 6319-4, FeliCaタグなど)、Mifare Classic*1、ISO-DEPに対応したタグ*2、およびNFC Type-V*3を扱うことが可能です。

 

iOS版
Mifare Classicには対応していません。

読み取り可能なNFC Type-Fタグのシステムコードに制限があります。
API Version 14時点では 0x0003(交通系ICカード)、0x88B4(FeliCa Lite)および一部のシステムコードのみに対応しています。

通信可能なISO-DEP対応タグは、運転免許証のみとなっています。

 

呼出形式

var conn = rt.DiscoverNfcTag( [ message [, showDiscoveringDialog ] ] )

 

戻り値

NFCタグとのやりとりを行うためのNfcTagConnectionオブジェクトを返します

 

引数

String message

タグ探索中に表示される文字列を指定します。

デフォルトは空文字列です。

 

boolean showDiscoveringDialog

タグ探索中である旨のダイアログを表示するか否かを指定します。

表示されるダイアログのデザインはNfcTagConnectionクラスの説明を参照して下さい。

デフォルトは$TRUEです。

iOS版
iOSではOSの制約によりダイアログを非表示にすることが出来ません。
そのため常に$TRUEを指定したときの振る舞いとなります。

 

例外

RTM-48

端末にNFCリーダ/ライタが存在しません。

 

RTM-49

端末のNFCリーダ/ライタが有効になっていません。

 

RTM-50

NFCタグへのアクセスに失敗しました。

 

RTM-51

NFCタグの探索がキャンセルされました。

 

使用例

var nfc = null;
try {
	nfc = Runtime.DiscoverNfcTag("交通系ICカードをかざしてください");
} catch(e) {
	MessageBox("NFCタグ探索失敗");
	return;
}
if(!nfc.IsFeliCaTag) {
	nfc.Close(false, "FeliCa以外のタグが読み取られました");
	return;
}
try {
	nfc.SetMessage("読取中...");
	/* システムコード0x0003(Suica)のIDmを取得*/
	var targetIDm = nfc.FeliCa_Polling(0x0003).IDm;
	/* サービス0x008B(カード情報)から1ブロック取得*/
	var blockData = nfc.FeliCa_Read(targetIDm, 0x008B, 0, 1);
	var balance = blockData.ByteAt(11) + blockData.ByteAt(12) * 256;
	/* NFCとの通信を終了 */
	nfc.Close(true, "Suica残高 : " + str(balance) + "円");
} catch(e) {
	nfc.Close(false, "読取エラー");
}

 

関連項目

HasNfcFeatureIsNfcReaderEnabledメソッド

NfcTagConnectionクラス

変更履歴
*1 API version 16から、Mifare Classicタグの探索に対応しました。
*2 API version 30から、ISO-DEPに対応したタグの探索に対応しました。
*3 API version 33から、NFC Type-Vに対応したタグの探索に対応しました。

 



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