检测活动是否正常启动或读取NFC标签后(没有任何提示)

时间:2012-07-11 12:07:53

标签: java android nfc ndef android-applicationrecord

如果使用Android应用程序记录(AAR),则意图操作

android.intent.action.MAIN

所以我不知道这是正常启动还是nfc启动。

我需要在我的活动中做一些不同的事情,无论是正常启动还是在nfc标签读取之后。如果手机上有另一个具有相同意图过滤器的应用程序,我也不想显示选择应用程序的提示,例如:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain" />
</intent-filter>

2 个答案:

答案 0 :(得分:6)

如果您将AAR 作为NDEF消息的第一条记录(所以第二条记录或更晚),并在清单中为NDEF消息的第一条记录放置一个NDEF_DISCOVERED意图过滤器,从标记启动时,您的应用程序将获得NDEF_DISCOVERED意图。意图将包含EXTRA,其中包含标记的句柄和完整的NDEF消息。

如果AAR是第一条记录,则会向应用程序发送ACTION_MAIN意图。此意图不会在EXTRAs中包含任何标记或NDEF消息。

要防止您的应用在扫描其他NFC标签时显示,请确保第一个NDEF记录的类型对您的应用而言是唯一的,并对其进行过滤。 External Type专为此目的而设计。 (由于标记中的AAR,扫描时不会显示其他任何应用。)

答案 1 :(得分:-3)

[编辑]:

检查您的意图中的有效负载:EXTRA_TAGEXTRA_NDEF_MESSAGES

如果意图来自NFC事件,则总是会设置此额外值。


[过时]:

  

使用   getIntent()   并检查它   action