2012-10-03 26 views
1

我有一个NFC活动,指定一个意图过滤器和数据。这有点像使NFC活动私人没有android:exported = false

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

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

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

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

回答

1

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

+0

所以更清楚一点,如果我想要一个外部事件(或意图)来触发我的活动(就像某种NFC场),我不能有活动private.right? – curioussam

+0

对。最好你可以做的是需要一些自定义权限,但这不适用于NFC,因为你不能改变操作系统。 –

+0

是有道理的...感谢尼古拉 – curioussam