NFCを使用した簡単なアプリを作成しようと思います。
まずはTAGを受け取れるようになるまで。
必要な<intent-filter>を記載しましょう。
<meta-data ・・・>はandroid.nfc.action.TECH_DISCOVERED用のタグです。
プロジェクトの「/res/xml」に 受け取りたいNFC規格を記載した「nfc_tech_filter.xml」を追加します。
詳しくはDeveloperサイトを参照
必要な<tech>タグのみ記載しましょう。
ちなみに、ここに記載する<tech>は「\frameworks\base\core\java\android\nfc\tech」に存在するクラス名です。
これだけで、SuiccaやICOCAなどのFelicaカードを端末にかざすと、android.nfc.action.XXXXのIntentを受けてActivityが起動します。
まずはTAGを受け取れるようになるまで。
AndroidManifest.xmlに必要なパラメータを記載
NFCハードウェアを使用するために必要なパーミッションを追加
1 | < uses-permission android:name>"android.permission.NFC" /> |
AndroidMarketにUpする際、NFC機能搭載端末のみ見えるようにするuses-featureを追加
1 | < uses-feature android:name = "android.hardware.nfc" android:required"true" /> |
ActivityでNFCデータをハンドリングしたい場合、inten-filterを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < intent-filter > < action android:name = "android.nfc.action.NDEF_DISCOVERED" /> < data android:mimeType = "mime/type" />< / intent-filter > < intent-filter > < action android:name = "android.nfc.action.TAG_DISCOVERED" /> </ intent-filter > < intent-filter > < action android:name = "android.nfc.action.TECH_DISCOVERED" /> </ intent-filter > < meta-data android:name = "android.nfc.action.TECH_DISCOVERED" android:resource = "@xml/nfc_tech_filter" /> |
必要な<intent-filter>を記載しましょう。
<meta-data ・・・>はandroid.nfc.action.TECH_DISCOVERED用のタグです。
プロジェクトの「/res/xml」に 受け取りたいNFC規格を記載した「nfc_tech_filter.xml」を追加します。
詳しくはDeveloperサイトを参照
1 2 3 4 5 6 7 8 9 10 11 12 13 | < resources xmlns:xliff = "urn:oasis:names:tc:xliff:document:1.2" > < tech-list > < tech >android.nfc.tech.IsoDep</ tech > < tech >android.nfc.tech.NfcA</ tech > < tech >android.nfc.tech.NfcB</ tech > < tech >android.nfc.tech.NfcF</ tech > < tech >android.nfc.tech.NfcV</ tech > < tech >android.nfc.tech.Ndef</ tech > < tech >android.nfc.tech.NdefFormatable</ tech > < tech >android.nfc.tech.MifareClassic</ tech > < tech >android.nfc.tech.MifareUltralight</ tech > </ tech-list > </ resources > |
必要な<tech>タグのみ記載しましょう。
ちなみに、ここに記載する<tech>は「\frameworks\base\core\java\android\nfc\tech」に存在するクラス名です。
これだけで、SuiccaやICOCAなどのFelicaカードを端末にかざすと、android.nfc.action.XXXXのIntentを受けてActivityが起動します。