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

Dix*_*ine 3 java android nfc ndef android-applicationrecord

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

android.intent.action.MAIN
Run Code Online (Sandbox Code Playgroud)

所以我不知道这是正常发射还是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>
Run Code Online (Sandbox Code Playgroud)

NFC*_*guy 6

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

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

要防止您的应用在扫描其他NFC标签时显示,请确保第一个NDEF记录具有您的应用所独有的类型并对其进行过滤.在外部类型是专门为此设计的.(由于您的代码中包含AAR,因此扫描时不会显示其他任何应用.)