• 締切済み

Android 6以降の felica 読み込み

NFCタグ(felica)に入っているデータをAndroid 端末で読み込む際の挙動について。 Android 5 の端末では NFCタグ(felica) の読み込みができているのですが、Android 6以降の端末ではうまく読み込みが行えていない状況です。 NFCタグ(felica)はこちらの製品を使用しており、Android 6では NFCA として認識されてしまいます。NFCFにデータが入っております。 https://artfinex.co.jp/wp/wp-content/uploads/2014/11/NFCBridge_V1.21.pdf ソースは簡単ではありますが以下となります。 NfcAdapter mNfcAdatpter = NfcAdapter.getDefaultAdapter(this); Intent intent = new Intent(this, this.getClass()).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0); String[][] techlist = new String[][] { {NfcF.class.getName()} }; mNfcAdatpter.enableForegroundDispatch(this, pendingIntent, null, techlist); Intentの受け取り Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); byte[] idm = tag.getId(); Idm が Android 5と6で異なっており、Android 5では、NFCF、Android6 以降では NFCAとなってしまいます。 techlistに、NfcF とした場合、Android 6以降では、 “このタグに対応するアプリがインストールされていません” といったメッセージが表示されてしまいます。 何かご存知の方がいらっしゃいましたら教えていただけないでしょうか。

みんなの回答

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.1

すみません、プログラムの方はよくわからないのですが、NFCの規格としては現在、以下の3つがあります。 ・NFC-A (ISO/IEC-14443 TypeA) Taspo等 ・NFC-B (ISO/IEC-14443 TypeB) IC運転免許証・マイナンバーカード等 ・NFC-F (FeliCa) Suica等 このうち、NFC-FはNFC規格制定当初にはなく、後から追加されました。 FeliCaを読み取りたいならはやり、「NfcF」でなければならないだろうと思われます。 ここで、日本のいわゆる「おさいふケータイ対応スマホ」には、FeliCa読み取り機能があるのですが、海外スマホでは、NFC-A/NFC-B しか対応していないスマホが結構あります。規格の制定時期もありますが、FeliCaは日本ローカルなので、海外で使うならばFeliCa読み取り機能は組み込むだけパーツと電力の無駄になってしまうのです。 ですから「Android6」が原因なのではなく、「FeliCa非対応スマホ」なので読めないという可能性はありませんか? スマホが対応しているNFC規格リスト、を取得してみたりすると何かわかるかもしれません。

runnera
質問者

補足

早速のご回答誠にありがとうございます。 使用しているAndroid 端末ですが、以下となります。 ご指摘いただいた felica 対応について調べてみましたが、どちらも国産で felica 対応してあると明記されていました。 - M357(富士通) Android 6.0.1 https://www.fmworld.net/product/phone/biz/m357/ felica 対応 https://www.fmworld.net/product/phone/biz/m357/spec.html?fmwfrom=m357_index - SO-02J(SONY) Android 8.0.0 https://www.sonymobile.co.jp/xperia/docomo/so-02j/ felica 対応 https://www.nttdocomo.co.jp/service/osaifu/compatible_model/index.html 気になるところとしては、使用しているタグが2つの規格をもっている所です。 -ISO/IEC14443 TypeB - ISO/IEC18092(FeliCa) https://artfinex.co.jp/wp/wp-content/uploads/2014/11/NFCBridge_V1.21.pdf データは felica 規格で保持していますので、上記Android 端末で felica データを読み込めればと思います。 気になるところとしては、プログラムで 読み込む規格を "NFCF(felica)"のみ制限した際に表示されるメッセージです。 “このタグに対応するアプリがインストールされていません” おそらく、Android OS が出しているメッセージかと考えられます。 なにかご存知でございましたらご連絡いただけますと幸いです。

関連するQ&A