国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

電視紅外/藍(lán)牙遙控器鍵值定義和適配

這篇具有很好參考價值的文章主要介紹了電視紅外/藍(lán)牙遙控器鍵值定義和適配。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

遙控器鍵值適配

一般來說,遙控器分藍(lán)牙遙控器和紅外遙控器。紅外遙控器是指遙控器通過紅外發(fā)射器把信號進(jìn)行發(fā)射,接收設(shè)備則通過紅外接收器進(jìn)行信號接收;藍(lán)牙遙控器是指遙控器通過藍(lán)牙方式進(jìn)行交互,遙控器和被連接設(shè)備均支持藍(lán)牙則可以進(jìn)行藍(lán)牙操作。
每個遙控器的每個按鍵都有獨(dú)特的物理碼,這是遙控器出廠時就已經(jīng)具備的,而且不同的遙控器廠商也有單獨(dú)的用戶碼。我們通過已知的條件,需要在SDK里做出相應(yīng)的適配和映射。

  • 遙控器紅外鍵值沒定義
    1.第一步:要知道這個遙控器的按鍵對應(yīng)的scancode碼是什么?有兩種方式可以知道這個scancode沒定義的值是什么。一、使用命令dmesg -c;二、使用echo 8 > /proc/sys/kernel/printk;這兩種方式都可以查詢到遙控器某個按鍵沒定義的物理碼。以下我用音量鍵減沒定義為例。
    通過使用dmesg -c查詢?nèi)缦拢?br>電視紅外/藍(lán)牙遙控器鍵值定義和適配
    如上圖所示,很明顯可以看到音量鍵減沒定義的物理碼是154,這個是十進(jìn)制的數(shù)值,需要轉(zhuǎn)換為十六進(jìn)制,轉(zhuǎn)換之后為9A,這個值先保留記住,之后適配時需要用上。

    2.第二步:需要知道遙控器的用戶碼,每款遙控器都有獨(dú)特的用戶碼,就好像每個人都有自己的身份證一樣,用戶碼就是遙控器身份證。使用cat /sys/devices/virtual/remote/amremote/customcode命令進(jìn)行查看遙控器用戶碼,在串口執(zhí)行該命令后,按下遙控器的任意鍵,再次執(zhí)行該命令就可以看到你使用這款遙控器的用戶碼了。

    3.第三步:進(jìn)行定義。需要定義該用戶碼相關(guān)的remote配置文件,該文件是主要映射物理碼和安卓鍵碼的,是聯(lián)系底層和上層的一個樞紐文件。知道了用戶碼和物理碼即可開始配置remote配置文件,配置內(nèi)容如下:

    // remote配置文件
    custom_name = test-remote-1
    custom_code = 0xc43b
    release_delay = 80
    key_begin
        0x9a    114   #VOLUME_DOWN
    key_end
    

    此時使用getevent命令,再按壓音量鍵減,則會有相應(yīng)的輸出,如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    但此時音量鍵的功能還沒能正常使用,需要把remote文件和kl文件關(guān)聯(lián)起來。

    4.第四步:需要知道遙控器對應(yīng)的kl是哪個,需要知道遙控器的pid和vid是什么?也可以知道目前遙控器使用的是哪個kl文件?從上面步驟可得知,目前遙控器使用的event是/dev/input/event1,可以使用getevent -v來得知/dev/input/event1對應(yīng)的是哪個pid和vid,使用getevent -v得出結(jié)果如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    紅色框住的就是pid和vid,我們可以通過pid和vid直接配置kl文件,放置文件到指定目錄下??梢允褂胐umpsys input命令查詢到目前/dev/input/event1對應(yīng)的kl文件,如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    目前知道了kl文件,文件名字也和pid、vid對應(yīng),則無須新建,直接通過vi修改文件,把音量鍵減的邏輯添加進(jìn)去,剛才在remote文件中定義0x9a對應(yīng)的是114,所以在kl文件里面則是通過114這個id來做標(biāo)識,在kl文件里面添加邏輯如下:

    key 114   VOLUME_DOWN
    

    此時音量鍵減功能已生效,肯定還有看官會很疑惑為什么音量鍵減功能就會生效了,其實(shí)關(guān)鍵就在VOLUME_DOWN這個值里,這個不是隨便寫的,是有底層文件與之相對應(yīng)的。

    5.第五步:要查找KeyEvent.java文件相關(guān)定義,路徑為frameworks/base/core/java/android/view/,查看到相關(guān)代碼如下:

        /** Key code constant: Volume Down key.
     	* Adjusts the speaker volume down. */
        public static final int KEYCODE_VOLUME_DOWN     = 25;
    

    數(shù)值25則是映射成最上層的安卓鍵值,可通過命令logcat -s WindowManager進(jìn)行查詢,按壓音量鍵減,logcat -s WindowManager結(jié)果輸出如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    按下和彈起則是一個輪回,可以看到輸出結(jié)果就是25,和KeyEvent.java文件里面的值對應(yīng)了起來。
    重點(diǎn):一般定義的鍵值涉及三個文件(attrs.xml、keycodes.h、InputEventLabels.h),在這三個文件里都會得到音量鍵減的相關(guān)的一些邏輯,如下:

    //路徑為:frameworks/base/core/res/res/values/attrs.xml
    <enum name="KEYCODE_VOLUME_DOWN" value="25" />
    
    //路徑為:frameworks/native/include/android/keycodes.h
    /** Volume Down key.
     * Adjusts the speaker volume down. */
    AKEYCODE_VOLUME_DOWN     = 25,
    
    //路徑為:frameworks/native/include/input/InputEventLabels.h
    DEFINE_KEYCODE(VOLUME_DOWN),
    

    之后需要自定義鍵值在該四個文件里進(jìn)行定義即可。
    小知識:可在hotkey.properties文件下配置熱鍵,一般預(yù)置在設(shè)備的/system/etc目錄下。
    至此,紅外遙控器的鍵值簡單適配和定義講訴完畢,下面講藍(lán)牙遙控器的鍵值適配和定義。

  • 遙控器藍(lán)牙鍵值沒定義
    1.第一步:通過藍(lán)牙連接好藍(lán)牙遙控器和設(shè)備。
    2.第二步:需要知道沒定義遙控器的藍(lán)牙HID鍵碼值Usage ID,如果是自定義的Usage ID,一般需要遙控器廠商提供,一般是根據(jù)規(guī)范定義出來的。我以藍(lán)牙遙控器#鍵為例,目前藍(lán)牙遙控器#鍵沒有效果,通過getevent命令也沒有任何輸出,通過查詢可知#鍵的Usage ID為0x304,這個需要記住,下面適配需要用上。
    小知識:HID鍵碼值不止Usage ID,還有Usage Page,Usage Page一般為0x07和0x0C兩個數(shù)值,0x07代表已經(jīng)定義好的鍵碼,0x0C代表用戶自定義的鍵碼。
    3.第三步:適配HID鍵值,首先需要修改hid-input.c,這個文件先用Usage ID和input.h先關(guān)聯(lián)起來,用戶自定義的鍵值一般需要修改hid-input.c中hidinput_configure_usage方法,然后找到方法里的HID_UP_CONSUMER里面進(jìn)行添加,代碼添加如下:

    //common/drivers/hid/hid-input.c
    case 0x304: map_key_clear(KEY_POUND);		break;
    

    input.h文件也須添加相關(guān)代碼,input.h里面對應(yīng)的值,到時候getevent也會輸出對應(yīng)的值,添加代碼如下:

    //common/include/uapi/linux/input.h
    #define KEY_POUND		0x2f1
    

    注意:在input.h里面也可知道定義的最大值不能超過0x2ff,不然溢出則定義失敗。
    小知識:0x07的HID鍵碼表如下:

    	static const unsigned char hid_keyboard[256] = {
    	  0,  0,  0,  0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
    	 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44,  2,  3,
    	  4,  5,  6,  7,  8,  9, 10, 11, 28,  1, 14, 15, 57, 12, 13, 26,
    	 27, 43, 43, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
    	 65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
    	105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
    	 72, 73, 82, 83, 86,127,116,117,183,184,185,186,187,188,189,190,
    	191,192,193,194,134,138,130,132,128,129,131,137,133,135,136,113,
    	115,114,unk,unk,unk,121,unk, 89, 93,124, 92, 94, 95,unk,unk,unk,
    	122,123, 90, 91, 85,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,
    	unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
    	unk,unk,unk,unk,unk,unk,179,180,unk,unk,unk,unk,unk,unk,unk,unk,
    	unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,unk,
    	unk,unk,unk,unk,unk,unk,unk,unk,111,unk,unk,unk,unk,unk,unk,unk,
    	 29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
    	150,158,159,128,136,177,178,176,142,152,173,140,unk,unk,unk,unk
    };
    

    4.第四步:getevent有值并且知道值為0x2f1,需要轉(zhuǎn)換為十進(jìn)制為753,需要到對應(yīng)kl文件里進(jìn)行相關(guān)配置,通過getevent -v得知藍(lán)牙遙控器的pid和vid,如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    所以通過pid和vid配置相關(guān)kl即可。使用dumpsys input知道目前使用的kl是默認(rèn)的,如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配
    通過pid和vid配置kl,名稱為Vendor_0508_Product_0110.kl,配置后和內(nèi)容如下:
    電視紅外/藍(lán)牙遙控器鍵值定義和適配

    ///system/usr/keylayout/Vendor_0508_Product_0110.kl
    key 753  POUND
    

    至此,藍(lán)牙鍵值定義完成。

    由上,紅外遙控器和藍(lán)牙遙控器的鍵值定義和適配完成了,有疑問聯(lián)系。文章來源地址http://www.zghlxwxcb.cn/news/detail-447308.html

到了這里,關(guān)于電視紅外/藍(lán)牙遙控器鍵值定義和適配的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于51單片機(jī)設(shè)計(jì)的紅外遙控器

    基于51單片機(jī)設(shè)計(jì)的紅外遙控器

    遙控器是現(xiàn)代生活中必不可少的電子產(chǎn)品之一,目前市面上的遙控器種類繁多,應(yīng)用范圍廣泛。而 NEC 紅外遙控器協(xié)議則是目前應(yīng)用最為廣泛的一種協(xié)議之一,幾乎所有的電視、空調(diào)等家用電器都支持該協(xié)議。 本項(xiàng)目是基于 51 單片機(jī)設(shè)計(jì)支持 NEC 協(xié)議的紅外遙控器,實(shí)現(xiàn)接收

    2024年02月09日
    瀏覽(39)
  • 探索控制領(lǐng)域:從電視遙控器到自動駕駛【基礎(chǔ)概念理解、應(yīng)用實(shí)例】

    當(dāng)談到控制學(xué)和控制系統(tǒng)時,你可能會聯(lián)想到電視遙控器、自動駕駛汽車、飛機(jī)自動駕駛系統(tǒng)以及許多其他自動化系統(tǒng)。但控制學(xué)是一個更廣泛的學(xué)科,它涵蓋了各種領(lǐng)域,從工程到生物學(xué),從經(jīng)濟(jì)學(xué)到環(huán)境科學(xué)。讓我們深入了解控制學(xué)的基本概念以及它在各個領(lǐng)域的應(yīng)用。

    2024年02月08日
    瀏覽(26)
  • android系統(tǒng)中定義的按鍵碼(包含鍵盤,游戲手柄,TV遙控器)

    數(shù)據(jù)來源:android sdk. KEYCODE_UNKNOWN???????? 0 KEYCODE_SOFT_LEFT?????? 1 KEYCODE_SOFT_RIGHT????? 2 KEYCODE_HOME??????????? 3 KEYCODE_BACK??????????? 4 KEYCODE_CALL??????????? 5 KEYCODE_ENDCALL???????? 6 KEYCODE_0?????????????? 7 KEYCODE_1?????????????? 8 KEYCODE_2?

    2024年02月12日
    瀏覽(21)
  • 433M遙控器無線解碼1527協(xié)議

    433M遙控器無線解碼1527協(xié)議

    433M遙控器無線解碼1527協(xié)議,定時器輪詢法 1527協(xié)議,最前面是引導(dǎo)碼,緊接著前20位為地址碼,每個遙控器不一樣,后4位是按鍵碼,每個遙控器都是一樣的, 邏輯分析儀捕捉圖形如下圖: 分別按下遙控器的四個按鍵結(jié)果如下圖: ev1527.c文件 ev1527.h文件

    2024年02月15日
    瀏覽(45)
  • 無人機(jī)遙控器方案定制_MTK平臺無人設(shè)備手持遙控終端PCB板開發(fā)

    無人機(jī)遙控器方案定制_MTK平臺無人設(shè)備手持遙控終端PCB板開發(fā)

    隨著科技的不斷發(fā)展和無人機(jī)技術(shù)的逐步成熟,無人機(jī)越來越受到人們的關(guān)注。作為一種高新技術(shù),無人機(jī)的應(yīng)用范圍不斷拓展,包括農(nóng)業(yè)、環(huán)境監(jiān)測、城市規(guī)劃、運(yùn)輸物流等領(lǐng)域。同時,無人機(jī)的飛行控制技術(shù)也得到了不斷的優(yōu)化和提升。 早期,無人機(jī)的飛行控制大多以機(jī)

    2024年02月03日
    瀏覽(22)
  • DJI A3飛控 遙控器信號中斷 會導(dǎo)致什么問題?

    DJI A3飛控 遙控器信號中斷 會導(dǎo)致什么問題?

    在使用DJI A3 飛控的過程中,希望用OSDK完成自動化的任務(wù)。 DJI A3要求必須連接遙控器,可以是大疆Lightbridge的遙控器,也可以是SBUS協(xié)議的遙控器,比如航模的支持SBUS協(xié)議的遙控器即可。 當(dāng)運(yùn)行OSDK的過程中,遙控器出現(xiàn)問題,或者遙控器的信號出現(xiàn)干擾,導(dǎo)致出現(xiàn)連接問題時

    2024年02月04日
    瀏覽(36)
  • 小米手機(jī)怎么開空調(diào)?3步讓你的手機(jī)成為空調(diào)遙控器

    小米手機(jī)怎么開空調(diào)?3步讓你的手機(jī)成為空調(diào)遙控器

    大家家里或者公司、學(xué)校宿舍等地方有空調(diào)嗎?當(dāng)你找不到空調(diào)遙控器或者空調(diào)遙控器損壞了的話該怎么辦?這時候小米手機(jī)的紅外線功能就派上用場了,小米手機(jī)怎么開空調(diào)? 沒錯,小米手機(jī)的紅外線功能是可以連接大部分家用設(shè)備的,空調(diào)僅僅是其中一種,包括風(fēng)扇、電

    2024年02月13日
    瀏覽(21)
  • 探索設(shè)計(jì)模式的魅力:掌握命令模式-解鎖軟件設(shè)計(jì)的‘遙控器’

    探索設(shè)計(jì)模式的魅力:掌握命令模式-解鎖軟件設(shè)計(jì)的‘遙控器’

    ??? 個人主頁: danci_ ?? 系列專欄: 《設(shè)計(jì)模式》 ???? 制定明確可量化的目標(biāo),并且堅(jiān)持默默的做事。 引言:探索命令模式的奧秘 ????軟件設(shè)計(jì)領(lǐng)域充滿挑戰(zhàn)與機(jī)遇,命令模式作為關(guān)鍵要素,以優(yōu)雅方式組織應(yīng)用程序中的行為和請求。命令模式在現(xiàn)實(shí)世界中無處不在

    2024年02月20日
    瀏覽(23)
  • 無人機(jī)基本知識,無人機(jī)遙控器功能詳解與調(diào)試方法

    無人機(jī)基本知識,無人機(jī)遙控器功能詳解與調(diào)試方法

    無人機(jī)作為一種新興的飛行器,近年來在各個領(lǐng)域得到了廣泛的應(yīng)用。而無人機(jī)遙控器則是控制無人機(jī)飛行的重要工具。 無人機(jī)遙控器是一種無線設(shè)備,通過它來遠(yuǎn)程控制無人機(jī)的飛行。遙控器通常包括一個或多個搖桿,用于控制無人機(jī)的各種動作,如起飛、降落、前進(jìn)、后

    2024年02月21日
    瀏覽(22)
  • 大疆無人機(jī) MobileSDK(遙控器/手機(jī)端)開發(fā) v5版<2>

    大疆無人機(jī) MobileSDK(遙控器/手機(jī)端)開發(fā) v5版<2>

    v5.x版本的功能與v4.x基本相同,都是獲取飛機(jī)的姿態(tài)信息、獲取無人機(jī)多媒體文件、操作多媒體文件、航線規(guī)劃等。不過在上一章節(jié)中也大致說了一些兩個版本的中API的差別,下面是根據(jù)一些API使用所完成的一些功能,因?yàn)轫?xiàng)目原因只能提供部分代碼供參考,后續(xù)如果有這方

    2024年02月14日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包