首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Open NFC仿真器入门

Open NFC仿真器入门
EN

Stack Overflow用户
提问于 2011-07-20 11:31:35
回答 3查看 31.6K关注 0票数 13

我想开始为android开发NFC应用程序。我最近开始使用android,我发现它是一个非常有趣的开发平台。在我出去投资一款内置了NFC阅读器和购买标签的Android设备之前,我想了解一下人们是如何真正为它们编写代码的。

我找到了Open NFC Android emulator,它似乎就是我要找的。我已经下载了: 1.用于Android的Open NFC 2. Open NFC核心版

在为Open NFC创建了一个avd之后,我按照说明进行了操作。

现在我面临的问题是,在模拟器中,当我转到无线设置,然后启用NFC时,它会提示出现错误。我已经尝试将IP设置为10.0.2.2以及从ipconfig获取的IP,但都无济于事。我看不到日志。此外,我还试图在运行防火墙时完全禁用它,这样它就不会被意外阻止。

顺便提一下,在启动仿真器之前,我已经启动了连接管理器。

有没有人有Open NFC for Android的经验,如果有人能告诉我一组更好的指令,我会非常感激,或者如果有人能推荐另一个模拟器,我可以尝试一些示例代码,并对NFC有更好的理解。

adb logcat的输出为

代码语言:javascript
复制
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获得的IP时,我得到相同的错误。

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-05 00:20:57

@nikhil:感谢您提供的TCP Echo Server链接。在运行echo服务器之后,我让我的OpenNFC堆栈正常工作。为了让其他用户也能从本练习中受益,这里总结了如何使用OpenNFC控制器(NFCC)模拟器设置NFC堆栈。

--堆栈(带有NFCC模拟器)仅在Windows主机上受支持,因为连接中心和NFCC模拟器都是Windows应用程序。

--需要下载所有3个包

具有连接中心和NFCC模拟器应用程序的

  1. OpenNFC Android SDK addon
  2. OpenNFC core Edition,。回声服务器:EchoTool

--安装SDK插件,使用SDK插件创建AVD。

--启动连接中心(运行"Connection Center.exe")并将其配置为接受来自其他机器的客户端连接。

--启动NFCC模拟器(运行"NfcSimulator.exe")。

--使用命令: echo工具/p tcp /s 7启动echo服务器(在端口7上)

--使用刚刚创建的AVD启动Android模拟器。

--从模拟器中,选择设置->无线和网络->NFC设置

--在IP连接中心输入10.0.2.2

--选择用于NFC HAL实施的模拟器

--现在单击NFC开关(复选框)以启动NFC堆栈!

票数 14
EN

Stack Overflow用户

发布于 2011-07-22 04:30:39

我也遇到过类似的问题。原来文档中提到的Connection Center是一个Windows应用程序。这是来自Inside的开发人员:“Connection Center是一个针对Windows的二进制形式发布的工具。您可以在Open NFC的核心版中找到它,以及NFC模拟器。”我的构建环境(Eclipse)运行在Ubuntu主机上。所以我在这一点上不太走运。您是否也在Linux主机上?

需要运行连接中心才能使NFC控制器模拟器工作,如文档中所述:“在启动AVD之前,必须启动连接中心并将其配置为接受来自其他机器的客户端连接”。

无论如何,在启动logcat之后,从调试消息中可以清楚地看到,模拟器无法连接到连接中心。单击NFC切换按钮后,将收集以下logcat输出:

代码语言:javascript
复制
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主机上工作,“您可能需要在机器上设置一个与连接中心并行的TCP回应服务器,以便在端口7上应答”。我不确定它是如何完成的,以及需要什么。

我建议您在Windows主机上尝试相同的设置,这也是我要做的。

票数 1
EN

Stack Overflow用户

发布于 2011-11-03 21:57:28

使用新版本的NFC核心,SDK,连接中心,NFC模拟器和Android附加组件的新镜像是可能的。我已经测试过了,它是有效的。只要查看Open NFC Project的页面并下载这些东西的新版本即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6770774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档