2011-06-15 29 views
5

我想從我的應用程序發送一個廣播(或者它是一個意圖?),如果正在播放某個音樂播放器或播放/暫停等,它將轉到音樂播放器的下一個音軌。下面是我擁有的代碼遠:Android使用意圖控制媒體播放器?

final Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON); 
    i.putExtra(Intent.EXTRA_KEY_EVENT, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE); 
    context.sendBroadcast(i); 

但是,據我測試,這段代碼沒有做任何事情。順便說一句,我把這個代碼放入一個函數中,並從後臺服務中調用它,以防相關。

那麼我怎樣才能使這個功能工作?如果由於某種原因無法進行,我願意接受有關解決方法和/或備用解決方案的建議。

非常感謝,謝謝。

+0

您是否接受目標應用程序的權限? – 2011-06-15 01:53:24

回答

7

您正在使用EXTRA_KEY_EVENT不當。請參閱Intent#EXTRA_KEY_EVENT。您需要用KEYCODE_MEDIA_PLAY_PAUSE鍵碼實例化一個新的KeyEvent對象。只是傳遞鍵碼的目的是傳遞它作爲一個整數,而不是KeyEvent

This thread顯示了創建KeyEvent對象的示例。

4
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON); 
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT)); 
sendOrderedBroadcast(i, null); 

i = new Intent(Intent.ACTION_MEDIA_BUTTON); 
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT)); 
sendOrderedBroadcast(i, null);