2013-11-10 1 views
1

Может ли кто-нибудь сказать мне, почему это больше не работает на Kitkat и как его решить?Android 4.4 - Воспроизведение музыкального проигрывателя по умолчанию

private Intent player; 
    player = new Intent(Intent.ACTION_MEDIA_BUTTON); 
    synchronized (this) { 
     player.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY)); 
     sendOrderedBroadcast(player, null); 

     player.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY)); 
     sendOrderedBroadcast(player, null); 
    } 

ответ

0

Я понятия не имею, почему вы считаете, что код будет надежным в первую очередь. Нет никакого требования, чтобы какое-либо приложение делало что-либо в ответ на эту конкретную пару передач.

Помимо этого, Android продолжает бороться с приложениями, которые отправляют поддельные системные трансляции, такие как Android 4.4 blocking apps sending ACTION_MEDIA_MOUNTED broadcasts. Я бы проверил LogCat и посмотрел, есть ли у вас какие-либо предупреждения или что-то относительно вашего неправильного использования этой трансляции.

+0

испытанный несколько кода для запуска музыкального проигрывателя по умолчанию, это был только один, который был должным образом работать на Android 4.3. Вы знаете лучший способ? Thx –

3

Существует новый метод AudioManager.dispatchMediaKeyEvent (KeyEvent) в API 19, который был создан специально для этой цели.

http://developer.android.com/reference/android/media/AudioManager.html#dispatchMediaKeyEvent(android.view.KeyEvent)

Этот код работает на KitKat:

AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 

long eventtime = SystemClock.uptimeMillis() - 1; 
KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0); 
am.dispatchMediaKeyEvent(downEvent); 

eventtime++; 
KeyEvent upEvent = new KeyEvent(eventtime,eventtime,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);   
am.dispatchMediaKeyEvent(upEvent); 
+0

Это рабочий код для Android 4.4 и выше .. Спасибо @samfromlv – Kushal

+0

Любопытно, что в версии 6.0 AudioManager больше не работает. – Auras