タグの書き込み判定処理

タグの書き込み判定処理

タグを書き込む前に取得したタグ情報に
NDEFフォーマットが含まれているか確認する

これは、書き込み対象のタグのフォーマットにより書き込み方法が変わるから

書き込み対象から取得したタグ情報に対して
getTechList()を使うと利用可能なNFCの種類がクラス名として取得できる

この中に
Ndef.class.getName()で取得できるクラス名が含まれているなら
NDEFフォーマットになり

NdefFormatable.class.getName()で取得できるクラス名が含まれているなら
NDEFフォーマットが可能なNDEFFormatableと判定できる

これをソースにすると

try{
List techList = Arrays.asList(tag.getTechList());

Array.asList()
については
http://shot606.com/?p=1094
を参考
意味は、配列をリストへ変換する

つまり、tag.getTechList()
で取得した配列をリストに変換して
techList へ格納している

次に書き込みを行うタグへNDEFデータが格納されていているか確認

if(techList.contains(Ndef.class.getName()))

contains()については
http://karetta.jp/book-node/java/230466
を参考にする
意味は、指定した要素が存在するならtrue
今回なら
Ndef.class.getName()で値が取得できたならtrueになる

これで、trueならNDEFが含まれているときの処理を書く

そして、falseだったとき、つまりNDEFでないなら
else if (techList.contains(NdefFormatable.class.getName())){
で判定し、trueなら
NdefFormatableが含まれているときの処理を書く

あとは、catchで例外処理

}catch(RuntimeException e){
Toast.makeText(this,getString(R.string.write_failure),Toast.LENGTH_SHORT).show();
}
これで、例外発生したらToastで表示する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です