我正在开发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活动
答案 0 :(得分:2)
我可能会这样做,就是设计一个BaseActivity
类来启用NFC foreground dispatching。只要它在onNewIntent()
中收到NFC意图,它就会检索标记的ID,并使用包含ID值的意图启动相关活动。
然后我会从这个类派生我的所有app活动。每当应用程序运行时扫描NFC标签,它将自动接收NFC意图并将其分派到所需的活动(可显示标签ID)。