私のプロジェクトはほぼ終了しました。それが今私が求めていることです。Android Lでヘッドセットボタンを押さえる方法は?
上記のAndroid L &のヘッドセット/メディアボタンの押し方を教えてもらえますか?私は、それが廃止予定であり、MediaSessionの使用方法に関する多くのドキュメンテーション/例を見ていないことを認識したときに、AM.registerReceiverを使用しようとしています(私のminSDKがAPI16であるため、compat1を使用しようとしています。違いは?)。ここで私は現在、(何ももたらされる)やってんだよ:
void initReceivers() throws IllegalArgumentException {
final int RC = 1001;
if (!MainActivity.noisyRegistered) {
app.registerReceiver(noisyReceiver, new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY));
MainActivity.noisyRegistered = true;
Intent intent = new Intent(app, AudioReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(app, RC, intent, PendingIntent.FLAG_UPDATE_CURRENT);
ComponentName name = new ComponentName(app.getPackageName(), AudioReceiver.class.getName());
MediaSessionCompat mediaSession = new MediaSessionCompat(app, "sggTag", name, pending);
mediaSession.setMediaButtonReceiver(pending);
}
}
static public class AudioReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON))
return;
KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null || binder == null || player == null)
return;
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_MEDIA_PLAY:
binder.resume();
break;
case KeyEvent.KEYCODE_MEDIA_PAUSE:
binder.resume();
break;
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
if (player.isPlaying())
binder.pause();
else
binder.resume();
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
binder.next();
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
binder.prev();
break;
}
}
}
私のマニフェストは:
<receiver android:name=".ListenService$AudioReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON"/>
</intent-filter>
</receiver>
ありますときに私は、保留中の意図を提供する必要がありますなぜ私は実際には非常に混乱していますsetCallbackメソッド。
ありがとうございました。
http://android-developers.blogspot.in/2010/06/allowing-applications-to-play-nicer.html 使用 –
もリンク以下は、私のマニフェストに1000000000000000上のシンボルを解決できません。 –
Android Studioはこの部分を見つけることができません:Intents.ACTION_PLAYER_PAUSE –