Как в Android управлять сторонними плеерами?

Вот есть скажем bluetoh-гарнитура. На ней кнопки "следующий трек", "предыдущий трек, "пауза/играть дальше". Она общается с телефоном, отдавая некие команды текущему (!) играющему плееру. Но как это повторить?
Интересует совместимость с 2.3.3 и выше.

Пробовал два варианта. Первый работает только с дефолтным плеером и не на всех телефонах.

Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command" , key ); //key - "togglepause","next","previous"
context.sendBroadcast(i);


Второй работает на всех телефонах, но если установлено несколько плееров - управляет не текущим, а только одним из них, по какому принципу выбирается плеер - понятия не имею. Т.е., если играет иной плеер - он ставится на паузу, а команду отдаются совершенно другому, который и запускается.

long eventtime = SystemClock.uptimeMillis() - 1;

//key - это KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, KeyEvent.KEYCODE_MEDIA_NEXT, KeyEvent.KEYCODE_MEDIA_PREVIOUS

Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, key, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
context.sendOrderedBroadcast(downIntent, null);

eventtime++;
Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent upEvent = new KeyEvent(eventtime, eventtime,KeyEvent.ACTION_UP, key, 0);
upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent);
context.sendOrderedBroadcast(upIntent, null);


Вот, ищу универсальную возможность, работающую стабильно.
  • Вопрос задан
  • 3060 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы