2

FitBit 应用程序刚刚推出了新的 NFC 功能,现在,即使我的应用程序以及我在设备上安装的其他几个应用程序都已注册(在清单中)为 NFC 应用程序,Android 不再询问我想要哪个应用程序当我将 NFC 标签扫描到我的设备时,直接使用 FitBit。

我很好奇他们可以做什么来覆盖清单中的设置。有什么方法可以让他们运行一个支配 NFC 并吞下所有传入 NFC 意图的服务?

我希望有一些方法可以破坏他们目前正在做的事情,因为实际上,他们的应用程序是破坏 Android 上底层基本 NFC 功能的恶意软件。

4

2 回答 2

1

我有一个应用程序,其中一个活动具有特定的意图过滤器:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="duckapp" />
</intent-filter>

如果扫描带有以 开头的 URL 的标签,duckapp://即使我安装了其他 NFC 应用程序(例如 TagInfo),我的应用程序的活动也会直接启动。

我不确定。但似乎如果一个活动比所有其他应用程序具有更具体的意图过滤器,它就会直接启动。

如果有人知道这个机制的精确文档,我很高兴听到它。

于 2013-05-14T21:09:22.150 回答
1

服务无法接收 NFC 意图,因此这不是您看到的原因。据我所知,FitBit 应用程序会过滤 MIME 类型为“text/plain”的 NFC 事件。因此,如果您的 NFC 标签包含 NDEF 文本记录,它可能会启动 FitBit,或者,如果使用相同的 NFC 意图过滤器和“text/plain”安装了更多应用程序,则会为相关应用程序显示一个应用程序选择器。

尝试扫描具有不同内容的另一个标签或将标签上的内容更改为不同类型的 NDEF 消息,看看会发生什么。

于 2013-05-14T19:03:17.983 回答