0
這裏是什麼清單內(這是內部廣播接收器用於ACTION_MEDIA_BUTTON不起作用
<receiver android:name=".MediaButtonIntentReceiver">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
主要活動
private MediaButtonIntentReceiver receiver = new MediaButtonIntentReceiver();
onCreate(Bundle savedInstanceState){
..
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
filter.setPriority(1000);
registerReceiver(receiver,filter);
..
}
這是MediaButtonIntentReceiver.class
public class MediaButtonIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
KeyEvent v_Event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (v_Event == null) {
return;
}
int v_Action = v_Event.getAction();
if (v_Action == KeyEvent.ACTION_DOWN) {
// do something
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
abortBroadcast();
}
對於某些原因,無論何時我啓動我的應用程序並點擊我的耳機按鈕,我都沒有收到Toast消息。音樂開始雖然玩。我試過尋找我在做什麼,但對我來說沒有運氣。
那麼我已經進一步研究了這個......嘗試了不同的代碼。試圖在java部分而不是xml中創建一個意圖過濾器。沒有。我認爲這可能與優先級有關,儘管我將優先級設置爲可能的最大數目,但Apollo仍在進行中。 –
看起來您在xml中聲明的優先級大於最大允許優先級,請嘗試將其降至1000,或者如果因爲它可能需要'<1000'而不工作999,而不是'<= 1000' – Cob50nm
我已經在創建java文件之前刪除了XML文件中的意圖過濾器。我正在模擬器上嘗試它。我認爲我的問題是基於代碼的。 –