3

一部のSamsungGalaxyMobileでは、ヘッドセットボタンを押すと、ミュージックプレーヤーが起動します。この機能を無効にしたい。ヘッドセットボタンを押して、別のタスクを実行したいと思います。

どうすればこれを達成できますか?

Intent.ACTION_MEDIA_BUTTONマイアプリケーションでのみ受信され、音楽プレーヤーはインテンを受信しないはずです。音楽プレーヤーが起動しないように、アプリケーションでやりたいことを実行します。

4

1 に答える 1

2

少し遅れますが、これは他の人にも役立ちます。

マニフェストファイルで、インテントフィルターの優先度を「高」(android:priority)に設定します。ドキュメントで可能な最高値は999だと思います。

<receiver android:name="media_button">      
    <intent-filter android:priority="999">
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>

次に、レシーバーコードで、他のインテントへのブロードキャストを中止します。これを行うには、abortBroadcast()関数を呼び出します。

  public class media_button extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
      if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
        //your code ...

        //abort other actions
        this.abortBroadcast();
      }
    }
}
于 2013-03-27T11:02:33.143 に答える