調査中につき、内容に誤りがあるかもしれません
モード | 優先順位 | 概要 |
NDEF_DISCOVERED | 1 | |
TECH_DISCOVERED | 2 | |
TAG_DISCOVERED | 3 |
未調査
ポイント
#codeprettify{{
?xml version="1.0" encoding="utf-8"?>
manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xx.xx.xx.xxxxx" android:versionCode="1" android:versionName="1.0" >!-- uses-feature、uses-permissonを追加する -->
<uses-feature android:name="android.hardware.nfc" android:required="true" /> <uses-permission android:name="android.permission.NFC" /> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="xx.xx.xx.xxxx.MainActivity" android:label="@string/app_name" android:permission="android.permission.NFC" >!-- intent-filterを追加する -->
<intent-filter> <action android:name="android.nfc.action.TECH_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>!-- meta-dataを追加する -->
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_filter" /> </activity> </application>
/manifest> }}
ポイント
#codeprettify{{
?xml version="1.0" encoding="utf-8"?>
manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.project.dev.nfcreader" android:versionCode="1" android:versionName="1.0" >!-- uses-feature、uses-permissonを追加する -->
<uses-feature android:name="android.hardware.nfc" android:required="true" /> <uses-permission android:name="android.permission.NFC" /> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="jp.project.dev.nfcreader.MainActivity" android:label="@string/app_name" android:permission="android.permission.NFC" >!-- intent-filterを追加する -->
<intent-filter> <action android:name="android.nfc.action.TAG_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>!-- meta-dataを追加する -->
<meta-data android:name="android.nfc.action.TAG_DISCOVERED" android:resource="@xml/nfc_filter" /> </activity> </application>
/manifest> }}
AndroidManifest.xmlのmeta-dataで指定したXMLを作成します。
作成する場所は、/プロジェクト/res/xmlになります。
今回の例だと、/プロジェクト/res/xml/nfc_filter.xmlを作成します。
#codeprettify{{
?xml version="1.0" encoding="utf-8"?>
resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list> <tech>android.nfc.tech.IsoDep</tech> </tech-list> <tech-list> <tech>android.nfc.tech.MifareClassic</tech> </tech-list> <tech-list> <tech>android.nfc.tech.MifareUltralight</tech> </tech-list> <tech-list> <tech>android.nfc.tech.Ndef</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NdefFormatable</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcA</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcB</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcBarcode</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcF</tech> </tech-list> <tech-list> <tech>android.nfc.tech.NfcV</tech> </tech-list>/resources> }} 以下のように記述すると、うまく動作しない場合があるようです。
(もしかするとディスパッチする方法によって変わるかも?)#codeprettify{{
?xml version="1.0" encoding="utf-8"?>
resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list> <tech>android.nfc.tech.IsoDep</tech> <tech>android.nfc.tech.MifareClassic</tech> <tech>android.nfc.tech.MifareUltralight</tech> <tech>android.nfc.tech.Ndef</tech> <tech>android.nfc.tech.NdefFormatable</tech> <tech>android.nfc.tech.NfcA</tech> <tech>android.nfc.tech.NfcB</tech> <tech>android.nfc.tech.NfcBarcode</tech> <tech>android.nfc.tech.NfcF</tech> <tech>android.nfc.tech.NfcV</tech> </tech-list>/resources> }}
NFCを読み込むと、intent経由でActivityが呼び出されます。