Android用のNFCアプリの開発を始めたいと思います。最近Androidから始めましたが、開発するのに非常に興味深いプラットフォームだと思います。 。外出してAndroidデバイスにNFCリーダーと購入タグが組み込まれているデバイスに投資する前に、どのように1つかを感じてみたいと思います。実際にそれらのためのコードを書きます。
Open NFC Androidエミュレーター を見つけました。探しているもののようです。ダウンロードしました:1。オープンNFC for Android 2。オープンNFCコアエディション
Open NFC用のavdを作成した後、指示に従いました。
今私が直面している問題は、エミュレーターで、ワイヤレス設定に移動してからNFCを有効にすると、エラーが発生したと表示されることです。 IPを10.0.2.2に設定し、ipconfigから取得したIPも設定しようとしましたが、役に立ちませんでした。私が見ることができるログはありません。また、ファイアウォールを実行中に完全に無効にして、誤ってブロックされないようにしました。
ちなみに、エミュレータを起動する前に、接続マネージャを起動しました。
誰かがOpen NFC for Androidの経験がありますか?誰かが私にもっと良い指示のセットを教えてくれるなら、私は代わりに最も感謝します誰かが私がいくつかを試すことができる別のシミュレーターを提案することができればサンプルコードを使用して、NFCについて理解を深めてください。
Adblogcatの出力は次のとおりです。
W/KeyCharacterMap( 165): No keyboard for id 0
W/KeyCharacterMap( 165): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/NfcSettings( 165): onPreferenceChange: Setting NFC key: nfc_cc_ip
D/NfcSettings( 165): onPreferenceChange: Setting NFC value: 10.0.2.2
D/NfcSettings( 165): onPreferenceChange: Setting System NFC NFC_CC_IP: 10.0.2.2
D/NfcSettings( 165): onPreferenceChange: Setting NFC key: nfc_hal_mode_list
D/NfcSettings( 165): onPreferenceChange: Setting NFC value: 1
D/NfcSettings( 165): onPreferenceChange: Setting NFC mPreferenceNfcHalMode: SIMULATOR:1
D/NfcSettings( 165): onPreferenceChange: Setting System NFC NFC_HAL_MODE: 1
W/InputManagerService( 68): Window already focused, ignoring focus gain of: com.Android.internal.view.IInputMethodClient$Stub$Proxy@406df430
D/NfcEnabler( 165): Setting NFC enabled state to: true
D/OpenNFCService( 250): Enabling NFC. previous =false
D/OpenNFCService( 250): mIsNfcEnabled NFC =false
D/OpenNFCService( 250): _enable =true
D/OpenNFCService( 250): IOpenNFCService:setNFCEnabled(true)
D/OpenNFCService( 250): Invalid IP address
D/OpenNFCService( 250): can't create configuration !
D/OpenNFCService( 250): updateNfcOnSetting: false
D/OpenNFCService( 250): NFC success of _enabletrue) is false
D/OpenNFCService( 250): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler( 165): Error setting NFC enabled state to true
IPをipconfigで取得したものに変更すると、同じエラーが発生します。
D/NfcSettings( 165): onPreferenceChange: Setting NFC key: nfc_cc_ip
D/NfcSettings( 165): onPreferenceChange: Setting NFC value: 114.31.179.86
D/NfcSettings( 165): onPreferenceChange: Setting System NFC NFC_CC_IP: 114.31.179.86
D/NfcEnabler( 165): Setting NFC enabled state to: true
D/OpenNFCService( 250): Enabling NFC. previous =false
D/OpenNFCService( 250): mIsNfcEnabled NFC =false
D/OpenNFCService( 250): _enable =true
D/OpenNFCService( 250): IOpenNFCService:setNFCEnabled(true)
D/OpenNFCService( 250): Invalid IP address
D/OpenNFCService( 250): can't create configuration !
D/OpenNFCService( 250): updateNfcOnSetting: false
D/OpenNFCService( 250): NFC success of _enabletrue) is false
D/OpenNFCService( 250): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler( 165): Error setting NFC enabled state to true
@nikhil:TCPエコーサーバーへのリンクをありがとう。エコーサーバーを実行した後、OpenNFCスタックを機能させました。他のユーザーがこの演習の恩恵を受けることができるように、ここに何をすべきかの要約がありますNFCコントローラー(NFCC)シミュレーターを使用してOpenNFCスタックをセットアップします。
-スタック(NFCCシミュレーターを使用)は、Windowsホストのみでサポートされます。これは、接続センターとNFCCシミュレーターの両方がWindowsアプリであるためです。
-ダウンロードする必要があります3つのパッケージすべて:
--SDKアドオンをインストールし、SDKアドオンを使用してAVDを作成します。
-接続センターを起動し(「ConnectionCenter.exe」を実行)、他のマシンからのクライアント接続を受け入れるように構成します。
--NFCCシミュレーターを起動します(「NfcSimulator.exe」を実行します)。
-次のコマンドを使用して、エコーサーバーを起動します(ポート7):echotool/p tcp/s 7
--start Android作成したばかりのAVDを使用するエミュレーター。
-エミュレーターから、[設定]-> [ワイヤレスとネットワーク]-> [NFC設定]を選択します
--IP接続センターに10.0.2.2と入力します
-NFC HAL実装用のシミュレータを選択
-NFCトグル(チェックボックス))をクリックして、NFCスタックを開始します!
私は同様の問題を経験しました。ドキュメントに記載されている接続センターはWindowsアプリであることが判明しました。これはInsideの開発者によるものです。「接続センターはWindows用のバイナリ形式でリリースされたツールです。OpenNFCのCoreEditionには、NFCシミュレーターと同様にあります。 "。ビルド環境(Eclipse)をUbuntuホストで実行しているので、これでは運が悪いです。Linuxホストでも使用していますか?
ドキュメントに示されているように、NFCコントローラーシミュレーターが機能するには、接続センターが実行されている必要があります。「AVDを起動する前に、接続センターを起動して、他からのクライアント接続を受け入れるように構成する必要があります。マシン」。
とにかく、logcatを起動した後、デバッグメッセージから、シミュレータが接続センターに接続できないことが明らかです。 NFCトグルボタンがクリックされた後、次のlogcat出力が収集されます。
root@Android:/ # logcat
D/NfcEnabler( 170): Setting NFC enabled state to: true
D/OpenNFCService( 273): Enabling NFC. previous =false
D/OpenNFCService( 273): mIsNfcEnabled NFC =false
D/OpenNFCService( 273): _enable =true
D/OpenNFCService( 273): IOpenNFCService:setNFCEnabled(true)
D/NFCService( 273): Java_org_opennfc_service_Interface_OpenNFCServerStart
D/NFCService( 273): Java_org_opennfc_service_Interface_OpenNFCServerStart : Simulator has been selected
D/Microread( 273): static_nfcc_device_open
D/Microread( 273): static_nfcc_device_get_binding
E/SIMULATOR( 273): 00071 ERROR HAL : GetNALBinding
E/CCCLIENT( 273): static_CCClientCreateSocket / connect() failed 111
E/SIMULATOR( 273): 00072 WARN HAL : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
E/SIMULATOR( 273):
E/SIMULATOR( 273): 00073 WARN HAL : CANNOT CONNECT TO THE CONNECTION CENTER.
E/SIMULATOR( 273):
E/SIMULATOR( 273): 00074 WARN HAL : SYMPTOM: Impossible to connect to the Connection Center
E/SIMULATOR( 273):
E/SIMULATOR( 273): 00075 WARN HAL : DIAGNOSTIC: Connection Center not started, firewall, ...
E/SIMULATOR( 273): Check Connection Center and your network configuration.
E/SIMULATOR( 273):
D/SIMULATOR( 273): 00076 TRACE HAL : =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
D/SIMULATOR( 273):
E/SIMULATOR( 273): 00077 ERROR SIM : static_NALBindingCreateFunction: Cannot create the com port
E/OPENNFC_SERVER( 273): 00031 ERROR NFC_HAL PNALServiceCreate: Error returned by the initialization of the NFC HAL
E/OPENNFC_SERVER( 273): 00032 ERROR EVENT : static_PContextCreate: Cannot create the NFC HAL Service
E/OPENNFC_SERVER( 273): 00033 ERROR STARTUP BootNFCC : PDriverCreate() failed
E/NFCService( 273): Java_org_opennfc_service_Interface_OpenNFCServerStart: StartNFCC failed
E/OpenNFCService( 273): OpenNFCServerStart failed
D/OpenNFCService( 273): updateNfcOnSetting: false
D/OpenNFCService( 273): NFC success of _enabletrue) is false
D/OpenNFCService( 273): $$$NFC$$$ Will connect ! $$$NFC$$$
W/NfcEnabler( 170): Error setting NFC enabled state to true
開発者は、これがLinuxホストで機能するためには、「ポート7で応答するには、マシンの接続センターと並列にTCPエコーサーバーをセットアップする必要があるかもしれません」」と述べました。それがどのように行われ、何が必要かわからない。
Windowsホストでも同じ設定を試してみることをお勧めします。これを実行します。
NFC Core、SDK、Connection Center、NFCエミュレーターとAndroidアドオンの新しいイメージ)の新しいバージョン可能です。テストして動作します... Open NFC Projectのページをチェックして、これらのものの新しいバージョンをダウンロードしてください。