一部のSamsungGalaxyMobileでは、ヘッドセットボタンを押すと、ミュージックプレーヤーが起動します。この機能を無効にしたい。ヘッドセットボタンを押して、別のタスクを実行したいと思います。
どうすればこれを達成できますか?
はIntent.ACTION_MEDIA_BUTTON
マイアプリケーションでのみ受信され、音楽プレーヤーはインテンを受信しないはずです。音楽プレーヤーが起動しないように、アプリケーションでやりたいことを実行します。
一部のSamsungGalaxyMobileでは、ヘッドセットボタンを押すと、ミュージックプレーヤーが起動します。この機能を無効にしたい。ヘッドセットボタンを押して、別のタスクを実行したいと思います。
どうすればこれを達成できますか?
はIntent.ACTION_MEDIA_BUTTON
マイアプリケーションでのみ受信され、音楽プレーヤーはインテンを受信しないはずです。音楽プレーヤーが起動しないように、アプリケーションでやりたいことを実行します。
少し遅れますが、これは他の人にも役立ちます。
マニフェストファイルで、インテントフィルターの優先度を「高」(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();
}
}
}