如何在Android中通过NFC传输数据

时间:2012-01-13 09:36:19

标签: android nfc

我想将支持NFC的电子卡上的数据上传到支持NFC的设备。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

Android提供了NFC Demo Code,您还应该阅读Android NFC topic

答案 1 :(得分:1)

首先,你必须获得AndroidMenifest.xml文件的权限。权限是:

<uses-permission android:name="android.permission.NFC" />

    <uses-feature android:name="android.hardware.nfc" />

将执行Nfc读/写操作的Activity,在menifest.xml文件中的该活动中添加此intent过滤器:

        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

在您的活动onCreate()方法中,您必须初始化NFC适配器并定义Pending Intent:

   NfcAdapter mAdapter;
    PendingIntent mPendingIntent;
    mAdapter = NfcAdapter.getDefaultAdapter(this);   
    if (mAdapter == null) {
        //nfc not support your device.
        return;
    }
    mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
            getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);

在onResume()中回调启用Foreground Dispatch以检测NFC意图。

mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);

在onPause()回调中,您必须禁用forground dispatch:

if (mAdapter != null) {
    mAdapter.disableForegroundDispatch(this);
}

在onNewIntent()回调方法中,您将获得新的Nfc Intent。获得The Intent后,您必须解析检测卡的意图:

@Override
protected void onNewIntent(Intent intent){    
    getTagInfo(intent)
     }
private void getTagInfo(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}

现在你有了标签。然后,您可以检查Tag Tech列表以检测该Tag。 标签检测技术在这里in My Another Answer