2014-12-29 20 views
0

我有一個Activity<intent-filter>標籤:Android的<意向過濾器>適用於<activity />而不是<receiver />

<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> 

我這麼想嗎?

感謝

+1

活動意圖和廣播意圖是不同的東西。你不能在另一箇中收到一個。 – njzk2

+0

在這裏http://stackoverflow.com/questions/6515017/android-receiver-for-multiple-actions他們說這是可能的,否則我可以用什麼來處理這些行爲? –

+0

你如何調用'sendBroadcast()'? – pskink

回答

1

與廣播接收器工作時,同樣的事情不能說,該方法的onReceive不調用:

這是因爲這些行動正在使用的一些其他進程在startActivity()startActivityForResult()。您無法通過BroadcastReceiver迴應startActivity()startActivityForResult()

+0

謝謝你的回答 –

相關問題