【发布时间】:2016-06-07 14:00:32
【问题描述】:
我正在尝试从系统检测到 NFC 标签时出现的 NFC 应用程序选择器对话框打开我的应用程序。我的应用出现在选择器对话框中。
案例一:
当应用程序在后台运行时。 在 NFC 标签检测中,将后台活动(任务中的顶级活动)带到前台。
问题
我需要在清单文件中指定哪个活动处理来自系统的 nfc 意图。因此,当用户从应用程序选择器中选择我的应用程序时,系统会启动该指定活动。而不是将后台活动带到最前面。
案例 2:
当应用程序没有通过它的启动器活动运行午餐应用程序时。
问题
为了实现这一点,我需要在清单文件中将启动器屏幕指定为 NFC 意图处理程序。通过这样做,我的应用程序将在案例 1 中失败!
AndoridManifest.xml sn-p
<activity android:name=".activityName" ...>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:category="android.intent.category.DEFAULT"
android:resource="@xml/nfc_tech_filter" />
</activity>
满足这两种情况的解决方案是什么?
我尝试使用ActivityManager,但没有得到解决方案。
【问题讨论】:
-
你尝试什么?你能发布你的 AndroidMAifest 的一部分包含 NFC 吗?
-
@LaurentY 我从 AndroidManifest 添加了 sn-p。
-
我认为的一个解决方案是创建没有 UI 的活动,然后检查应用程序任务。如果应用程序在后台运行,则将第二个顶级活动带到地面或启动应用程序!
-
您的标签是特定的(来自您)或可能是市场上的任何标签?
-
标签特定于我的应用程序。但是 Ndef 记录没有我的应用程序的包名。
标签: android android-intent nfc android-pendingintent