2011-07-17 3 views
0

ListActivityによって呼び出されるBroadcastReceiverでデータを受信しようとしています。 呼び出されましたが、私はそれをテストしましたが、getExtrasは常にNULLを返します。ListActivityのgetExtrasがAndroid BroadcastReceiverのNULLである

これは私のListActivityの興味深い部分である:

public boolean onContextItemSelected(MenuItem item) { 
    Intent distIntent = new Intent(); 
    distIntent.setAction(Intent.ACTION_SEND); 
    distIntent.putExtra("fileName", new File("Test").getName()); 
    sendBroadcast(distIntent); 
} 

これは私のBroadcastReceiverの対応する部分:

public void onReceive(Context c, Intent intent){ 
    String b = intent.getStringExtra("fileName"); 
    if(b != null) 
     Log.e(logTag, "File Name: "+b); 
} 

ファイルは、その名が意図に適切に追加され、存在するが、何らかの理由で私の受信機に伝播していません。

アドバイスありがとうございます。

答えて

1

new File("Test").getName()がヌル値を返す場合は、上記のコードが有効です。

onReceiveメソッドはまったく呼び出されていますか?

<receiver android:name=".TestReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEND" /> 
     </intent-filter> 
</receiver> 

、代わりにgetNameメソッド呼び出しのいくつかの静的な文字列を、それが働いた:私は私のマニフェストXMLに次<receiver>ブロックでコードを試してみました。

+0

おかげさしで助けてくれてありがとう - 別のアクションでもテストしていたので、間違ったインテントフィルター(自分のカスタムインテントをフィルターにかけたもの)を使いました。 – Stefan

関連する問題