13

Android用のNFCアプリの開発を始めたいと思います。私は最近Androidを使い始めましたが、Androidを開発するのに非常に興味深いプラットフォームだと感じています。外出してNFCリーダーが組み込まれたAndroidデバイスに投資し、タグを購入する前に、実際にどのようにコードを記述しているかを感じてみたいと思います。

Open NFC Androidエミュレーターを見つけましたが、それが私が探しているもののようです。ダウンロードしました:1。Android用のOpen NFC 2.OpenNFCコアエディション

Open NFC用のavdを作成した後、指示に従いました。

今私が直面している問題は、エミュレーターで、ワイヤレス設定に移動してからNFCを有効にすると、エラーが発生したと表示されることです。IPを10.0.2.2に設定しようとしましたが、ipconfigから取得したIPも使用できませんでした。私が見ることができるログはありません。また、ファイアウォールが誤ってブロックされないように、ファイアウォールの実行中にファイアウォールを完全に無効にしようとしました。

ちなみに、エミュレータを起動する前に、接続マネージャを起動しました。

誰かがAndroid用のOpenNFCの経験がありますか?誰かが私にもっと良い指示のセットを教えてくれるなら、私は代わりに最も感謝します誰かが私がいくつかのサンプルコードを試して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
4

3 に答える 3

14

@nikhil: TCP Echo Server へのリンクをありがとう。エコーサーバーを実行した後、OpenNFC スタックが機能するようになりました。他のユーザーがこの演習から利益を得ることができるように、NFC コントローラー (NFCC) シミュレーターを使用して OpenNFC スタックをセットアップするために必要な手順の概要を次に示します。

--接続センターと NFCC シミュレーターの両方が Windows アプリであるため、スタック (NFCC シミュレーターを使用) はWindows ホストでのみサポートされます。

-- 3 つのパッケージすべてをダウンロードする必要があります。

  1. OpenNFC Android SDK アドオン
  2. 接続センターと NFCC シミュレーター アプリを備えたOpenNFC コア エディション。
  3. エコー サーバー: EchoTool

--SDK アドオンをインストールし、SDK アドオンを使用して AVD を作成します。

-- コネクション センターを起動し ("Connection Center.exe" を実行)、他のマシンからのクライアント接続を受け入れるように構成します。

-- NFCC シミュレーターを起動します (「NfcSimulator.exe」を実行します)。

-- 次のコマンドを使用して (ポート 7 で) エコー サーバーを起動します: echotool /p tcp /s 7

-- 作成した AVD を使用して Android エミュレーターを起動します。

--エミュレーターから、[設定] -> [ワイヤレスとネットワーク] -> [NFC 設定] を選択します。

-- IP コネクション センターに 10.0.2.2 と入力します。

--NFC HAL 実装用のシミュレーターを選択

--NFC トグル (チェック ボックス) をクリックして、NFC スタックを開始します。

于 2011-08-04T16:20:56.543 に答える
1

新しいバージョンのNFCコア、SDK、接続センター、NFCエミュレーター、およびAndroidアドオンの新しいイメージが可能です。私はテストしましたが、動作します... Open NFCプロジェクトのページをチェックして、これらのものの新しいバージョンをダウンロードしてください。

于 2011-11-03T13:57:28.040 に答える
1

同様の問題を経験しました。ドキュメントに記載されている接続センターは Windows アプリであることが判明しました。これは、Inside の開発者によるものです。「コネクション センターは、Windows 用のバイナリ形式でリリースされたツールです。NFC シミュレーターと同様に、Open 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 ホストで同じセットアップを試すことをお勧めします。

于 2011-07-21T20:30:39.343 に答える