我有Activity
个<intent-filter>
个标记:
<activity
android:name=".NFCActivity"
android:label="@string/title_activity_nfc" >
<intent-filter>
<action android:name="android.nfc.action.TRANSACTION_DETECTED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="secure"
android:pathPrefix="/a000000004"
android:port="0"
android:scheme="nfc" />
</intent-filter>
<intent-filter>
<action android:name="com.gsma.services.nfc.action.TRANSACTION_EVENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="nfc" />
</intent-filter>
<intent-filter>
<action android:name="com.gsma.services.nfc.action.TRANSACTION_EVENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这可以按预期工作,活动在检测到交易时启动。
使用BroadcastReceiver
时,不能说同样的事情,不会调用onReceive
方法:
<receiver
android:name="carta.NfcReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.nfc.action.TRANSACTION_DETECTED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="secure"
android:pathPrefix="/a000000004"
android:port="0"
android:scheme="nfc" />
</intent-filter>
<intent-filter>
<action android:name="com.gsma.services.nfc.action.TRANSACTION_EVENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="nfc" />
</intent-filter>
<intent-filter>
<action android:name="com.gsma.services.nfc.action.TRANSACTION_EVENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
我错过了什么吗?
由于
答案 0 :(得分:1)
在使用BroadcastReceiver时,不能说同样的事情,不会调用onReceive方法:
这是因为startActivity()
或startActivityForResult()
中的其他一些流程正在使用这些操作。您无法使用startActivity()
回复startActivityForResult()
或BroadcastReceiver
。