我研究了ACTION_MEDIA_BUTTON
的意圖,並試圖使用它,並攔截按鈕並使用吐司在屏幕上顯示它們。我註冊了接收器攔截兩個目的:如何攔截Android中耳機上的按鈕?
ACTION_HEADSET_PLUG
- 插上耳機ACTION_MEDIA_BUTTON
- 如果接收到按鈕按下
這是我的主要活動進行:
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(10000);
registerReceiver(_receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
registerReceiver(_receiver, mediaFilter);
這是r的部分eceiver處理該按鈕按下:
if (action.equals(Intent.ACTION_HEADSET_PLUG))
{
Toast.makeText(context, "earphones activity",Toast.LENGTH_SHORT).show();
if (intent.getExtras().getInt("state")==1)//if plugged
Toast.makeText(context, "earphones plugged",Toast.LENGTH_LONG).show();
else Toast.makeText(context, "earphones un-plugged",Toast.LENGTH_LONG).show();
}
else
if (action.equals(Intent.ACTION_MEDIA_BUTTON))
{
Toast.makeText(context, "button pressed",Toast.LENGTH_LONG).show();
key=intent.getExtras().getString("EXTRA_KEY_EVENT");
Toast.makeText(context, key,Toast.LENGTH_LONG).show();
}
現在處理耳機插件和拆除工作正常,但攔截按按鍵部分不是一部分。
是否有任何理由處理ACTION_MEDIA_BUTTON
不起作用的代碼?
是否有我需要攔截這種意圖的特殊許可?
我正在使用三星Galaxy S2來測試代碼。
我看過所有類似的帖子,並試過一切。不幸的是似乎沒有任何工作
你在測試什麼設備? – slayton 2012-01-29 21:12:21
samsung galaxy s 2 – 2012-01-29 21:26:23
我不確定,但它可能是TouchWiz沒有正確實現ANDROID_MEDIA_BUTTON意圖... – slayton 2012-01-29 21:30:50