3

如果使用 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>
4

2 回答 2

6

如果您将 AAR作为 NDEF 消息的第一条记录(因此是第二条记录或更高版本),并且您在清单中为 NDEF 消息的第一条记录放置了一个 NDEF_DISCOVERED 意图过滤器,则您的应用程序将在从启动时获得一个 NDEF_DISCOVERED 意图一个标签。意图将具有包含标签句柄和完整 NDEF 消息的 EXTRA。

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

为防止您的应用在扫描其他 NFC 标签时出现,请确保第一个 NDEF 记录具有您的应用独有的类型并对其进行过滤。外部类型是专门为此目的而设计的。(由于标签中的 AAR,扫描时不会显示其他应用程序。)

于 2012-07-17T08:07:21.100 回答
-3

[编辑]:

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

如果意图来自 NFC 事件,则始终会设置此额外内容。


[过时的]:

使用 getIntent() 并检查其 操作

于 2012-07-11T12:10:26.947 回答