如何阅读NFC标签以防止系统对话显示NFC启动器列表和标签

时间:2013-05-14 11:36:56

标签: android tags nfc rfid

我正在开发NFC RFID标签阅读应用程序,只需读取NFC ID号并在某些NOT MAIN活动中将其写入EditText。 NFC阅读只是该应用程序中的一百个功能之一。 当我在Panasonic dl1手机上测试它时,当我第一次触摸NFC标签到手机时,手机会显示我的应用程序选择处理对话框 - 只有2个应用程序显示“标签”和“入门列表NFC”。如果我选择入门名单NFC,我将完成注册IC卡并命名并最终命名的长期过程 - 选择应该在标签关闭时自动启动的应用程序。如果我选择标签 - 它将在列表中显示“标记未知”评论。 我的应用程序有这些功能和过滤器:          

<activity
        android:name="pl.infis.spedycja.activities.LoginActivity"
        android:label="@string/app_name"
        android:theme="@style/infisTheme"
        android:windowSoftInputMode="stateUnspecified|adjustPan" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />

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

            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>

是否有可能绕过此系统对话框并以此方式进行操作: 当我的应用程序运行时,当我将NFC标签靠近手机时(无论是第一次还是第二次),一些活动开始,然后它在编辑文本中显示NFC标签ID,那就是全部? P.S我尝试向非Launcher活动添加过滤器但它没有响应 - 总是响应Launcher活动

1 个答案:

答案 0 :(得分:2)

我可能会这样做,就是设计一个BaseActivity类来启用NFC foreground dispatching。只要它在onNewIntent()中收到NFC意图,它就会检索标记的ID,并使用包含ID值的意图启动相关活动。

然后我会从这个类派生我的所有app活动。每当应用程序运行时扫描NFC标签,它将自动接收NFC意图并将其分派到所需的活动(可显示标签ID)。