開発メモ/Android/NFC
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#navi(開発メモ/Android)
''調査中につき、内容に誤りがあるかもしれません''
#contents
*NFCの種類 [#ob2ddc4a]
|FeliCa|SONYの独自仕様。処理が速いらしい|
|Mifare|Type A に基づいた規格|
|Type A|taspo|
|Type B|住民基本台帳カード、自動車運転免許証、パスポート|
|Type C||
*NFCのディスパッチ方式 [#r5177873]
|モード |優先順位|概要|h
|NDEF_DISCOVERED|1 ||
|TECH_DISCOVERED|2 ||
|TAG_DISCOVERED |3 ||
*NFCを読み込むためのAndroidManifest.xmlの記述 [#jaefbb23]
**NDEF_DISCOVERED [#nff24702]
未調査
**TECH_DISCOVERED [#j8167776]
ポイント
-uses-feature
-uses-permisson
-intent-filter
-meta-data
--ここで、どのNFCタイプに対応するかを定義するXMLを指定する
#codeprettify{{
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/r...
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_DISCOVE...
<category android:name="android.intent.category.DEFAU...
</intent-filter>
<!-- meta-dataを追加する -->
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_filter" />
</activity>
</application>
</manifest>
}}
**TAG_DISCOVERED [#lf615e3f]
ポイント
-uses-feature
-uses-permisson
-intent-filter
-meta-data
--ここで、どのNFCタイプに対応するかを定義するXMLを指定する
#codeprettify{{
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/r...
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_DISCOVER...
<category android:name="android.intent.category.DEFAU...
</intent-filter>
<!-- meta-dataを追加する -->
<meta-data
android:name="android.nfc.action.TAG_DISCOVERED"
android:resource="@xml/nfc_filter" />
</activity>
</application>
</manifest>
}}
*tech-listの作成 [#f601d315]
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...
<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...
<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>
}}
*intentを受け取る [#ga65391e]
NFCを読み込むと、intent経由でActivityが呼び出されます。~
*参考 [#y54a53e3]
-[[ソフトウェア技術ドキュメントを勝手に翻訳 i.1 NFC の基...
終了行:
#navi(開発メモ/Android)
''調査中につき、内容に誤りがあるかもしれません''
#contents
*NFCの種類 [#ob2ddc4a]
|FeliCa|SONYの独自仕様。処理が速いらしい|
|Mifare|Type A に基づいた規格|
|Type A|taspo|
|Type B|住民基本台帳カード、自動車運転免許証、パスポート|
|Type C||
*NFCのディスパッチ方式 [#r5177873]
|モード |優先順位|概要|h
|NDEF_DISCOVERED|1 ||
|TECH_DISCOVERED|2 ||
|TAG_DISCOVERED |3 ||
*NFCを読み込むためのAndroidManifest.xmlの記述 [#jaefbb23]
**NDEF_DISCOVERED [#nff24702]
未調査
**TECH_DISCOVERED [#j8167776]
ポイント
-uses-feature
-uses-permisson
-intent-filter
-meta-data
--ここで、どのNFCタイプに対応するかを定義するXMLを指定する
#codeprettify{{
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/r...
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_DISCOVE...
<category android:name="android.intent.category.DEFAU...
</intent-filter>
<!-- meta-dataを追加する -->
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_filter" />
</activity>
</application>
</manifest>
}}
**TAG_DISCOVERED [#lf615e3f]
ポイント
-uses-feature
-uses-permisson
-intent-filter
-meta-data
--ここで、どのNFCタイプに対応するかを定義するXMLを指定する
#codeprettify{{
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/r...
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_DISCOVER...
<category android:name="android.intent.category.DEFAU...
</intent-filter>
<!-- meta-dataを追加する -->
<meta-data
android:name="android.nfc.action.TAG_DISCOVERED"
android:resource="@xml/nfc_filter" />
</activity>
</application>
</manifest>
}}
*tech-listの作成 [#f601d315]
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...
<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...
<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>
}}
*intentを受け取る [#ga65391e]
NFCを読み込むと、intent経由でActivityが呼び出されます。~
*参考 [#y54a53e3]
-[[ソフトウェア技術ドキュメントを勝手に翻訳 i.1 NFC の基...
ページ名: