bir ACTION_MEDIA_BUTTON niyet (I kullanıcı bluetooth kulaklık oynat düğmesini tıklayarak olduğunu taklit ediyorum), Google Müzik açılır ve yerine ön plan müziği çalmaya uygulamanın oynanan son albümü oynar Play'den bir sendOrderedBroadcast gönderme. Ben sendBroadcast olarak değiştirin, hem Google Müzik VE akım müzik çalmaya uygulaması (benim durumumda Pandora) Play EğerGoogle Play Müzik tüm ACTION_MEDIA_BUTTON amaçlarını mı işaret ediyor?
, oynat düğmesini yürürlüğe olacaktır.
Bu yalnızca Android 4.0 ve yukarıda oluşur. Play Müzik, bu amacı (bir hata) hogging mi? Bu tavsiyeden sonra Pandora'nın kendisini güncel medya düğmesi işleyicisi olarak kaydetmediğinden şüpheleniyor musunuz: http://android-developers.blogspot.com/2010/06/allowing-applications-to-play-nicer.html
Bu amacı yalnızca geçerli müzik çalma uygulamasına yönlendirmenin bir yolu var mı?
public void broadcastMediaIntent(MediaIntent intentType){
long eventtime = SystemClock.uptimeMillis();
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = null;
KeyEvent upEvent = null;
switch(intentType){
case NEXT:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT, 0);
break;
case PLAY_PAUSE:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
break;
case PREVIOUS:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0);
break;
case FAST_FORWARD:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_FAST_FORWARD, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_FAST_FORWARD, 0);
break;
case REWIND:
downEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_REWIND, 0);
upEvent = new KeyEvent(eventtime, eventtime,
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_REWIND, 0);
break;
default:
break;
}
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
sendOrderedBroadcast(downIntent, null);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
sendOrderedBroadcast(upIntent, null);
}
http://code.google.com/p/android/issues/detail?id=23272 – joepetrakovich