2014-09-22 125 views

回答

2

這就是所謂的媒體按鈕,它確實引起可以由BroadcastReceiver處理的系統廣播,但它需要與常規Receivers稍微不同。每次只有一個應用程序可以接收廣播,並且接收方必須註冊AudioManager才能激活。 This developer page演示如何實現和註冊Receiver。但是,該部分有幾處印刷錯誤。系統服務需要被映射爲AudioManager,並且registerMediaButtonEventReceiver()unregisterMediaButtonEventReceiver()方法的調用每個都應該有一個ComponentName對象作爲參數。例如:

AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); 
ComponentName receiverName = new ComponentName(mContext, RemoteControlReceiver.class); 
... 
// Start listening for button presses 
am.registerMediaButtonEventReceiver(receiverName); 
... 

// Stop listening for button presses 
am.unregisterMediaButtonEventReceiver(receiverName); 
+0

不工作...請檢查此https://mycodestock.com/public/snippet/12222 – benoffi7 2014-09-22 19:10:41

+0

片段看起來不錯。您是否嘗試過爲小工具編寫的應用程序以確保其正常工作?你調試過,看看你的'onReceive()'方法是否被調用? – 2014-09-22 19:20:02

+0

是的。我調試了代碼,並且從來沒有調用過deRecibe。小工具應用看起來很好。 – benoffi7 2014-09-22 19:21:55