2
我想創建一個broadcastreceiver來偵聽android.intent.action.MEDIA_BUTTON,並從中獲取extra_key_event,並相應地採取行動。不知何故,接受動作不執行。android broadcastreceviver onreceive action not performed
在我的清單:
receiver android:name="MediaButtonReceiver"
intent-filter
action android:name="android.intent.action.MEDIA_BUTTON"
intent-filter
接收機
在我的廣播接收器:
public class MVCS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
/* handle media button intent here by reading contents */
/* of EXTRA_KEY_EVENT to know which key was pressed */
KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
}
}
然而,當我按下音量向下鍵不顯示任何內容。
任何幫助將不勝感激!
感謝您的幫助。即使我的活動沒有運行,廣播接收者是否仍然像服務一樣在後臺運行? – kevdliu
廣播接收器不像服務,沒有任何東西可以持續運行,只是你附加到某個事件的監聽器,就是這樣。只有當事件被解僱時,它纔會執行,並且記住響應不是那麼快,有時需要300或400mS直到聽衆被解僱。 – ruhalde