在没有android:exported = false的情况下使NFC活动保密

时间:2012-10-03 23:17:56

标签: android android-activity nfc intentfilter

我有一个NFC活动,它指定了一个意图过滤器和数据。这就像

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

            <data
                android:host="..."
                android:path="..." />
        </intent-filter>

现在关注的是,因为我没有包含 android:exported =“false”。它使这项活动容易受到来自外部应用程序的恶意攻击,因为该活动现在已公开。这里的问题是,如果我将导出的属性设置为false,我将无法从外部意图(它应该通过onNewIntent()触发活动)调用活动。

有没有办法让活动“安全”而不影响其一般触发机制,即通过外部意图?

1 个答案:

答案 0 :(得分:1)

如果您需要获得有关标记的通知,则需要使用intent过滤器。标签调度程序使用它来查找扫描标签时要考虑的感兴趣的活动。如果您将您的活动设为私有,则无法通知您,如您所见。你关注什么'恶意攻击'?您的活动与编码一样安全:如果您只处理NFC意图,那么您将“安全”(除非NFC有效负载触发设备擦除代码或其他内容......)