如何读写Android NFC标签?

ogf*_*asi 13 android nfc

我使用adam摇杆源代码为我的NFCTest做了一些教程.我希望能够读取和写入NFC标签,并启动应用程序.

Tho*_*sRS 15

NDEF工具为Android实用项目有助于执行以下操作

  1. 然后检测
  2. ,或
  3. 光束(推)NFC内容

该项目还包括所有标准化NDEF记录类型的数据绑定,与使用Android SDK中包含的(基于字节数组的)NDEF类相比,这真正简化了事情.

另请参阅用于图形NDEF编辑器的NFC Eclipse插件 - 附带一个实用程序应用程序,可读取和写入标签和光束,还具有NFC阅读器集成.

顺便说一下,您正在寻找用于启动应用程序的Android应用程序记录.启动"功能"不需要任何真正的实现; 它内置于Android> = 4.0,因此将该记录放在标签上就足够了.


Md.*_*rim 11

首先,您必须获得NFC的AndroidManifest.xml文件的权限.权限是:

<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" />
Run Code Online (Sandbox Code Playgroud)

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

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

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

在您的活动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);
Run Code Online (Sandbox Code Playgroud)

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

mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
Run Code Online (Sandbox Code Playgroud)

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

    if (mAdapter != null) {
        mAdapter.disableForegroundDispatch(this);
    }
Run Code Online (Sandbox Code Playgroud)

在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);
}
Run Code Online (Sandbox Code Playgroud)

现在你有了标签.然后,您可以检查Tag Tech列表以检测该Tag.标签检测技术在我的另一个答案中 完整的完整项目在My github配置文件中


Sve*_*ges 1

我认为你找到的代码指的是2.3.3之前的时代。此时还无法编写标签,但在 Android 2.3.3 中这是可能的。无需尝试破解系统并编写这样的标签。

查看 NFC 演示项目:http://developer.android.com/resources/samples/NFCDemo/index.html