android 耳機線控的實現方法

2021-07-10 14:38:03 字數 1635 閱讀 6702

耳機線控的功能 

耳機線控的實現 

耳機線控實現方式主要有兩種,(注:可能出現無法獲取鍵值的問題,可能導致的原因是:1、驅動不支援;2、按鍵對映不正確)。 

一種是前台的,前台的,在activity 裡處理,只有該activity 在前台時才會處理按鍵。 

重寫onkeyup()、onkeydown(),它們分別處理放開事件和按下事件; 

**如下: 

@override

public boolean onkeyup(int keycode, keyevent event)

return false;//為true,則其它後台按鍵處理再也無法處理到該按鍵,為false,則其它後台按鍵處理可以繼續處理該按鍵事件。

}@override

public boolean onkeydown(int keycode, keyevent event)

return false;//為true,則其它後台按鍵處理再也無法處理到該按鍵,為false,則其它後台按鍵處理可以繼續處理該按鍵事件。

}@override

public boolean onkeylongpress(int keycode, keyevent event)

return false;

}

另一種是註冊監聽,監聽intent.action_media_button,後台處理按鍵事件,有優先順序,有可能被攔截,接收不到按鍵事件。

實現方式如下:

1、註冊監聽intent.action_media_button,**如下:

intentfilter mediafilter = new intentfilter();

//攔截按鍵keyevent.keycode_media_next、keyevent.keycode_media_previous、keyevent.keycode_media_play_pause

mediafilter.addaction(intent.action_media_button);

mediafilter.setpriority(100);//設定優先順序,優先順序太低可能被攔截,收不到資訊。一般預設優先順序為0,通話優先順序為1,該優先順序的值域是-1000到1000。

registerreceiver(mediabuttonreceiver, mediafilter);

2、處理廣播資訊。

private broadcastreceiver mediabuttonreceiver = new broadcastreceiver()

};

3、在handler中處理按鍵事件。 

private handler handler = new handler()else

break;

case keyevent.keycode_media_previous:

if(islongpress)else

break;

}break;

default://其他訊息-則扔回上層處理

super.handlemessage(msg);}}

};//注:這種方法處理長按之前一定會先執行短按。

android 耳機線控的實現方法

keycode onkeydown keyevent 耳機線控的功能 耳機線控的實現 耳機線控實現方式主要有兩種,注 可能出現無法獲取鍵值的問題,可能導致的原因是 1 驅動不支援 2 按鍵對映不正確 一種是前台的,前台的,在activity 裡處理,只有該activity 在前台時才會處理按鍵。重寫...

耳機線的接法

耳機是我們日常必備工具,尤其是在公共場所或是夜深人靜時!之前一直用的是入耳式的耳機,隔音效果好,聲音大,所以下狠心買了乙個用過最貴的耳機90 元。但是買回用了不到兩個星期就讓我給弄報廢了,而且入耳式的耳機戴久了耳朵塞的疼。所以我就 買了個8.6元包郵的山寨蘋果耳機,結果帶給了我很多驚喜,沒想到音質絲...

Android 重寫View來實現全新的控制項

xmlversion 1.0 encoding utf 8 resources declare styleable name myarcscalemap attr name myarcscalemap titletext format string attr name myarcscalemap t...