0

我正在开发 NFC RFID 标签读取应用程序,该应用程序只需要读取 NFC ID 号并将其写入 EditText 中的一些非主要活动。NFC 读取只是该应用程序中的数百个功能之一。当我在 Panasonic dl1 手机上测试它时,当我第一次将 NFC 标签触摸到手机时,手机会显示我选择要处理的应用程序的对话框 - 只有 2 个应用程序显示“标签”和“NFC 入门列表”。如果我选择 Starter List 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 仅此而已?PS我尝试将过滤器添加到非启动器活动,但它没有响应 - 总是响应启动器活动

4

1 回答 1

2

我可能会这样做的方式是设计一个BaseActivity启用NFC 前台调度的类。每当它在 中接收到 NFC 意图时onNewIntent(),它都会检索标签的 ID,并使用包含 ID 值的意图启动相关活动。

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

于 2013-05-14T19:08:24.557 回答