NFCを使ってみる その1

NFCを使用した簡単なアプリを作成しようと思います。
まずはTAGを受け取れるようになるまで。

AndroidManifest.xmlに必要なパラメータを記載

NFCハードウェアを使用するために必要なパーミッションを追加
<uses-permission android:name="android.permission.NFC" />
AndroidMarketにUpする際、NFC機能搭載端末のみ見えるようにするuses-featureを追加
<uses-feature android:name="android.hardware.nfc" android:required="true" />
ActivityでNFCデータをハンドリングしたい場合、inten-filterを追加
<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" />

必要なを記載しましょう。

android.nfc.action.TECH_DISCOVERED用のタグです。
プロジェクトの「/res/xml」に 受け取りたいNFC規格を記載した「nfc_tech_filter.xml」を追加します。
詳しくはDeveloperサイトを参照

<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>

必要なタグのみ記載しましょう。
ちなみに、ここに記載するは「\frameworks\base\core\java\android\nfc\tech」に存在するクラス名です。



これだけで、SuiccaやICOCAなどのFelicaカードを端末にかざすと、android.nfc.action.XXXXのIntentを受けてActivityが起動します。