BroadcastReceiver を使用してメディア ボタンの 1 つをキャプチャするサービスを作成しました。音楽プレーヤーが非アクティブな場合にのみ、メディア ボタン イベントをキャプチャできます。音楽プレーヤーがアクティブなときにメディアボタンイベントをキャプチャするにはどうすればよいですか..!
マイアクティビティ:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_and_activation_view);
Log.d("MR", "onCreate - " + getIntent().getAction());
AudioManager mAudioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
ComponentName mediaButtonReceiver = new ComponentName(getPackageName(), HeadsetControlEventReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(mediaButtonReceiver);
}
MyBroadcastReceiver:
public class HeadsetControlEventReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try{
KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if ((event != null) && (event.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK)) {
マニフェスト.Xml
<receiver
android:name=".HeadsetControlEventReceiver"
android:enabled="true">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.MEDIA_BUTTON"/>
</intent-filter>
</receiver>