三浦と申します。はじめまして、よろしくおねがいします。
TECH_DISCOVEREDのintent-filterに、メタデータのtech-listでNfcA/NfcFのフィルタを加えて、
かざされたらintentで起こされる形で作っているということでしょうか。
KitKat以上のAndroid端末に限られますが、
NfcAdapter.enableReaderMode / disableReaderModeを使うのはいかがでしょうか?
このメソッドのフラグとしてFLAG_READER_NFC_Fを指定し、
activityを起動した状態でFeliCaカードやおサイフケータイをかざしてもらう使い方です。
また、FeliCaに加えて、TypeAのプラスティックICカードも読み込みたいということですと、
フラグは、FLAG_READER_NFC_A | FLAG_READER_NFC_F のようになると思います。
この状態で、読出側のAndroid OSの対向ICカード検知の実装に対しては、
TypeA/B/F対応のおサイフケータイのTypeAが優先的に検知されるようです。
この時、tag.getTechList()を見ると、TypeAとISODEPになっているように見えます。
ジャストアイデアですが、
その時だけ一時的にNfcAdapter.enableReaderModeのフラグの指定を
NFC_Fのみにして、再かざししてもらい、
無事読み込みたら、NfcAdapter.enableReaderModeのフラグをNFC_A|NFC_Bに戻す
ということができると思います。
ざくっとコードを書いて試しましたが、Nexus5を読み取り側にして試したところ、
期待どおりの動作をしました。
ご参考まで。
2014年12月28日日曜日 22時59分29秒 UTC+9 kawakami-k: