Android NFC读取标签问题。每次收到的数据都会启动活动

时间:2012-02-28 16:31:28

标签: android android-activity tags nfc rfid

阅读NFC标签时遇到2个问题。

首先是每次收到标签时都会创建标签阅读活动。

第二个问题是活动在全屏窗口中打开,而不是在Tab Host Activity下,但第一个问题是最差的。

我该怎么做(AndroidManifest.xml):

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

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

和readingActivity.cs:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.d("W", "onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.readingActivity);
    }

    @Override
    public void onResume() {
        super.onResume();
        Log.d("W", "onResume");

        PendingIntent intent = PendingIntent.getActivity(this, 0, getIntent(), 0);
         NfcAdapter.getDefaultAdapter(this).enableForegroundDispatch(this, intent, 
                  null, null);
    }

    @Override
    protected void onPause() {
        super.onPause();
        if(NfcAdapter.getDefaultAdapter(this) != null)
        NfcAdapter.getDefaultAdapter(this).disableForegroundDispatch(this);
    }

日志:

02-28 18:22:19.949: D/W(4513): onCreate

02-28 18:22:19.949: D/W(4513): onResume

02-28 18:22:21.078: D/W(4513): onCreate

02-28 18:22:21.082: D/W(4513): onResume

1 个答案:

答案 0 :(得分:4)

问题出在PendingIntentgetIntent()检索启动Intent的{​​{1}},因此将其传递给Activity会导致另一次启动。

而不是PendingIntent使用类似getIntent()的内容。