我尝试使用 Open-NFC 在我的计算机上模拟 NFC 。我设法安装它,它似乎能够连接NFC控制器模拟器。 当我模拟标签时,我的AVD会通过打开网络浏览器或甚至打开我正在开发的程序来做出反应。问题是我的程序以及ST-Microelectronics的开源程序都没有识别标签。
版本:
Android Studio 0.8.6
(Open-NFC)NFC Controller Simulation v 4.5.2
(Open-NFC)Connection Center v4.5.2
(Open-NFC)SDK add-on, 4.4.1 Android 4.0.3
APP M24LR SampleCode form ST-Microelectronics
设置AVD
启用NFC
10.0.2.2
NFC控制器模拟器
设置连接中心
接受来自其他计算机的服务客户端连接
接受来自其他计算机的服务提供商连接
接受子连接中心
如果您需要更多信息,请不要犹豫。我有另一个附加版本,然后是Open-NFC的Core-Edition,这可能是个问题吗?
这是演示程序代码的一部分:
protected void onCreate(Bundle savedInstanceState) {
// after checking if nfc is enabled...
mPendingIntent = PendingIntent.getActivity(this, 0,new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
mFilters = new IntentFilter[] {ndef,};
// and then some other stuff...
protected void onNewIntent(Intent intent)
{
// TODO Auto-generated method stub
super.onNewIntent(intent);
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action))
{
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
DataDevice dataDevice = (DataDevice)getApplication();
dataDevice.setCurrentTag(tagFromIntent);
byte[] GetSystemInfoAnswer = NFCCommand.SendGetSystemInfoCommandCustom(tagFromIntent,(DataDevice)getApplication());
if(DecodeGetSystemInfoResponse(GetSystemInfoAnswer))
{
Intent intentScan = new Intent(this, Scan.class);
startActivity(intentScan);
}
else
{
return;
}
}
}
protected void onResume()
{
// TODO Auto-generated method stub
super.onResume();
//Used for DEBUG : Log.v("NFCappsActivity.java", "ON RESUME NFC APPS ACTIVITY");
mPendingIntent = PendingIntent.getActivity(this, 0,new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
mAdapter.enableForegroundDispatch(this, mPendingIntent, mFilters, mTechLists);
}