2011-08-22 30 views
10

私はうんざりです。私はSDカードが利用可能になる/オフラインになるように私のアプリを設定しようとしていますが、私の放送受信機は決して呼ばれません!MEDIA_MOUNTEDブロードキャストを受信して​​いません

私は、イベントが放送されて見ることができ、かつ他のアプリが応答:

08-21 23:43:04.405: DEBUG/Ringer(275): -- intent.getAction() =android.intent.action.MEDIA_MOUNTED 

そして、私のマニフェストには、受信機は宣言した:

<receiver android:name=".Test" android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     </intent-filter> 
    </receiver> 
そして、私の受信機がonReceive方法があります。

public class Test extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.d("#########", "##############################################################"); 
     Log.d("#########", "Obligitory snarky and/or funny logging comment..."); 
     Log.d("#########", "##############################################################"); 
    } 
} 

& ^%$ 'ものはTest.onReceivを引き起こしませんe()を発射する。何かご意見は?

答えて

39

あなたは深刻なことはできません。どうやら、私はデータ型のための追加のフィルタを追加する必要があった。

あなたは、実行時に登録を行う他、<intentfilter><data android:scheme="file" />タグを追加してみてください

<receiver android:name=".Test" android:enabled="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
     <data android:scheme="file"/> 
    </intent-filter> 
</receiver> 
+1

公式のドキュメントにスキームがないようですが、コードは実際には動作しないので、間違いなく迷惑です。 http://developer.android.com/reference/android/os/Environment.html – smith324

+1

受信者を動的にリンクする人は、IntentFilterインスタンスでaddDataScheme( "file")を呼び出すことができます。 – dhakim

8

...「隣の男」のための答えを残します。
実行時に、ブロードキャスト受信者のオブジェクトを作成し、registerReceiver(obj)に渡します。

+0

ありがとう、私はあなたが投稿する前にそれを数分考え出した。 –

+0

これを回答済みの質問リストに追加する必要があります。 – Ronnie

+1

うん、それは...あなたが答えを提出する前であった。あなたは約15分後に答えを加えました。 –

関連する問題