如何使用Open-NFC读取和写入Tag

时间:2014-08-20 08:02:30

标签: android nfc open-nfc

我尝试使用 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);
}

0 个答案:

没有答案