读取RFID/NFC标签ID



我试图得到一段代码,能够扫描一个标签,并在TextView中显示该标签…

我真的被这个淹没了,任何建议都会很感激…

当我扫描一个标签时,被发现的标签的噪声被播放…然而,TextView没有更新…所以应用程序目前可以扫描一个标签,但它没有把标签ID放在TextView中…

Java Main Class

package com.security.nfc;
    import android.app.Activity;
    import android.content.Intent;
    import android.nfc.NfcAdapter;
    import android.nfc.Tag;
    import android.os.Bundle;
    import android.widget.TextView;
public class main extends Activity 
{

@Override
protected void onCreate(Bundle b)
{
    super.onCreate(b);
    setContentView(R.layout.main);
}
    public void onNewIntent(Intent intent) 
    {
        Tag myTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        TextView tagID = (TextView) findViewById(R.id.result);
        tagID.setText("TagID: " + myTag.getId());
    }
}
Android清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.security.nfc">
<application android:allowBackup="true"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">
    <activity
        android:name="com.security.nfc.main">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
            <action android:name="android.nfc.action.TECH_DISCOVERED"/>
            <action android:name="android.nfc.action.TAG_DISCOVERED"/>
            <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
        </intent-filter>
    </activity>
    <uses-feature android:name="android.hardware.nfc" android:required="true" />
</application>
<uses-permission android:name="android.permission.NFC" />
</manifest>

如果你想接收NFC标签发现事件,而你的活动已经在前台可见,你应该注册NFC前台调度系统。参见高级NFC:使用NFC前台调度系统。您通常会使用NfcAdapter的enableForegroundDispatch()方法进行注册。之后,你可以在你的活动的onNewIntent()方法的意图(或作为一个挂起的意图结果取决于你如何注册)。

void onNewIntent (Intent Intent)

这是调用在他们的包中设置launchMode为"singleTop"的活动,或者如果客户端在调用startActivity(Intent)时使用FLAG_ACTIVITY_SINGLE_TOP标志。在任何一种情况下,当activity在activity栈的顶部被重新启动,而不是一个新的activity实例被启动时,onNewIntent()将在现有的实例上被调用,并使用Intent来重新启动它。

https://developer.android.com/reference/android/app/Activity.html onNewIntent (android.content.Intent)

相关内容

  • 没有找到相关文章

最新更新