一、修改按键快速检查
1、修改ir.c已有按键功能快速验证:
如:
2、make customers
3、在根目录 cvte_build/resource/irkeycode下(这个是NEC协议的,其他协议也是一个道理,替换对应的tab就行了)
remote_nec_irfac.tab是CVTE工厂遥控
remote_nec_ircus1.tab是客户遥控
将remote_nec_ircus1.tab替换板卡/vendor/etc/mr/nec/remote_nec_ircus1.tab
重启后生效
二、IR和hotkey编译检查拦截
拦截一
1、一键启动apk或者打开页面的快捷键,IR.c和hotkey.xml按键必须要匹配
背景:有些时候配置粗心,或者不清楚这个快捷键还需要hotkey.xml配合,容易留到生产测试才发现问题,这里是为了更早的拦截问题
此时按照提示,检查 IR.c和hotkey.xml即可,如上IR.c 配置了 IRKEY_USER_DEF_FUNCTION1,但是hotkey.xml并没有用到,这个时候就会报错拦截
拦截二
2、目前没有实现功能但是以后可能使用的按键,在customer阶段编译可以拦截报错
背景:有些按键目前是没有功能的,但是后面二期或者后续项目可能会用到的,这里添加了一个黑名单,记录没有目前没有功能的按键,如果配置了就报错,也是为了更早的拦截问题
如果后续按键功能已实现,只需要修改配置文件即可
customers/common/ir/cvte_ir_no_function.txt
颜色 | 备注 |
---|---|
功能正常,部分需要配合hotkey.xml(会有编译检查拦截) | |
没有功能,或者不支持 |
三、IR按键配置
颜色 备注
功能正常,部分需要配合hotkey.xml(会有编译检查拦截)
没有功能,或者不支持
1、Android 原生部分
IRKEY 功能 scancode keycode keycode 备注
IRKEY_0
数字键0
11 KEYCODE_0 7
IRKEY_1 数字键1 2 KEYCODE_1 8
IRKEY_2 数字键2 3 KEYCODE_2 9
IRKEY_3 数字键3 4 KEYCODE_3 10
IRKEY_4 数字键4 5 KEYCODE_4 11
IRKEY_5 数字键5 6 KEYCODE_5 12
IRKEY_6 数字键6 7 KEYCODE_6 13
IRKEY_7 数字键7 8 KEYCODE_7 14
IRKEY_8 数字键8 9 KEYCODE_8 15
IRKEY_9 数字键9 10 KEYCODE_9 16
IRKEY_10 -/-- 12 KEYCODE_MINUS 69
IRKEY_POWER POWER键 116 KEYCODE_POWER 26
IRKEY_INFO INFO、Display 358 KEYCODE_INFO 165
IRKEY_INPUT_SOURCE SOURCE键 79 KEYCODE_TV_INPUT 178
IRKEY_UP 上 103 KEYCODE_DPAD_UP 19
IRKEY_DOWN 下 108 KEYCODE_DPAD_DOWN 20
IRKEY_LEFT 左 105 KEYCODE_DPAD_LEFT 21
IRKEY_RIGHT 右 106 KEYCODE_DPAD_RIGHT 22
IRKEY_VOLUME_PLUS 音量+ 115 KEYCODE_VOLUME_UP 24
IRKEY_VOLUME_MINUS 音量- 114 KEYCODE_VOLUME_DOWN 25
IRKEY_CHANNEL_PLUS 频道+ 402 KEYCODE_CHANNEL_UP 166
IRKEY_CHANNEL_MINUS 频道- 403 KEYCODE_CHANNEL_DOWN 167
IRKEY_MENU MENU键 139 KEYCODE_MENU 82
IRKEY_HOME HOME键 102 KEYCODE_HOME 3
IRKEY_SELECT OK键、确认键 28 KEYCODE_DPAD_CENTER 23
IRKEY_MUTE 静音键 113 KEYCODE_VOLUME_MUTE 164
IRKEY_DOT
52 KEYCODE_PERIOD 56
IRKEY_RED
398 KEYCODE_PROG_RED 183
IRKEY_GREEN
399 KEYCODE_PROG_GREEN 184
IRKEY_YELLOW
400 KEYCODE_PROG_YELLOW 185
IRKEY_BLUE
401 KEYCODE_PROG_BLUE 186
IRKEY_SCREEN_SHOT 截图键 99 KEYCODE_SYSRQ 120
只支持OSD,不支持VIDEO
调用原厂接口,实现在tvapi apk里面processScreenCapture
ATM30 Android 9.0内存优化已经裁剪了System UI
Class clz = Class.forName(“android.view.SurfaceControl”);
Method screenshot = clz.getMethod(“screenshot”, Rect.class, int.class, int.class, int.class);
mScreenBitmap = (Bitmap)screenshot.invoke(null, new Rect(0, 0, screenWidth, screenHeigth), screenWidth, screenHeigth, 0);
IRKEY_DEL
delete键
(按下遥控器Delete快捷键等同于操作虚拟键盘的Delete)
648 KEYCODE_DEL 67
IRKEY_EXIT 返回键 158 KEYCODE_BACK 4
IRKEY_PLAY_PAUSE 播放/暂停 637
KEYCODE_MEDIA_PLAY_PAUSE
85
IRKEY_PLAY
IRKEY_PAUSE
IRKEY_STOP 停止 638 KEYCODE_MEDIA_STOP 86
IRKEY_SUBTITLE SUBTITLE键 213 KEYCODE_CAPTIONS 175
IRKEY_BACKWARD 快退 639 KEYCODE_MEDIA_REWIND 89
IRKEY_FORWARD 快进 640 KEYCODE_MEDIA_FAST_FORWARD 90
IRKEY_PREVIOUS 前一首 641 KEYCODE_MEDIA_PREVIOUS 88
IRKEY_NEXT 下一首 642 KEYCODE_MEDIA_NEXT 87
IRKEY_ZOOM_IN zoom in 688 KEYCODE_ZOOM_IN 168
IRKEY_ZOOM_OUT zoom out 689 KEYCODE_ZOOM_OUT 169
IRKEY_CAPSLOCK
AOSP输入法,一键切换大小写 1129
KEYCODE_CAPS_LOCK
115 实现:https://tvgit.gz.cvte.cn/c/AML920L_Pie/source/base/android/+/646227
IRKEY_NICAM_MTS
通道 - 丽音 (目前不支持丽音)
多媒体 - 音轨
214 KEYCODE_MEDIA_AUDIO_TRACK 222
一期功能不带丽音
音轨功能正常
IRKEY_MEDIA_EJECT 进出仓 659 KEYCODE_MEDIA_EJECT 129 没功能
IRKEY_EPG EPG 365 KEYCODE_GUIDE 172 没功能(不带DTV)
2、CVTE 新增部分
IRKEY 功能 scancode keycode keycode 备注
IRKEY_NULL
IRKEY_IR_MOUSE 遥控鼠标键 1093 KEYCODE_IR_MOUSE 1072
实现在/android/frameworks/native/services/inputflinger/InputReader.cpp
相关问题:
IRKEY_ASPECT 比例模式 627 KEYCODE_ASPECT_RATIO 1040 相关配置宏:CVT_DEF_API_CONFIG_XML_TYPE
IRKEY_FAV 喜爱列表 630 KEYCODE_FAV_LIST 1041 功能实现在 智研apk LiveTVGlobal
IRKEY_FAV_UP 喜爱频道+ 631 KEYCODE_FAV_UP 1042
IRKEY_FAV_DOWN 喜爱频道- 632 KEYCODE_FAV_DOWN 1043
IRKEY_USB 多媒体快捷键 644 KEYCODE_TV_INPUT_MEDIA 1052
公版默认支持
功能实现:
KEYCODE_TV_INPUT_MEDIAIRKEY_SMODE sound mode快捷键 636 KEYCODE_SOUND_MODE 1030 UI实现在 智研apk GlobalUI;功能在tvapi
IRKEY_PMODE picture mode快捷键 635 KEYCODE_PICTURE_MODE 1029 UI实现在 智研apk GlobalUI;功能在tvapi
IRKEY_NO_SUPPORT
按键无功能,只有一个提示
677 KEYCODE_NO_SUPPORT 1137
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
nonsupport
KEYCODE_NO_SUPPORT
IRKEY_SOUND_SURROUND
一键打开SOUND设置(只在通道里)
678 KEYCODE_SOUND_SURROUND 1131
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
GridSound
false
KEYCODE_SOUND_SURROUND
IRKEY_SETTINGS_WIFI
一键打开网络设置
679 KEYCODE_SETTINGS_WIFI 1134
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
KEYCODE_SETTINGS_WIFI
IRKEY_USER_DEF_FUNCTION1 预置按键,可用于一键启动apk(需要配合hotkey.xml) 649 KEYCODE_USER_DEF_FUNCTION1 1110
系统预置好的按键,名称同Android 5.1
IRKEY_USER_DEF_FUNCTION2 预置按键,可用于一键启动apk(需要配合hotkey.xml) 650 KEYCODE_USER_DEF_FUNCTION2 1111
IRKEY_USER_DEF_FUNCTION3 预置按键,可用于一键启动apk(需要配合hotkey.xml) 651 KEYCODE_USER_DEF_FUNCTION3 1112
IRKEY_USER_DEF_FUNCTION4 预置按键,可用于一键启动apk(需要配合hotkey.xml) 652 KEYCODE_USER_DEF_FUNCTION4 1113
IRKEY_USER_DEF_FUNCTION5 预置按键,可用于一键启动apk(需要配合hotkey.xml) 653 KEYCODE_USER_DEF_FUNCTION5 1114
IRKEY_USER_DEF_FUNCTION6 预置按键,可用于一键启动apk(需要配合hotkey.xml) 672 KEYCODE_USER_DEF_FUNCTION6 1115
IRKEY_USER_DEF_FUNCTION7 预置按键,可用于一键启动apk(需要配合hotkey.xml) 673 KEYCODE_USER_DEF_FUNCTION7 1116
IRKEY_USER_DEF_FUNCTION8 预置按键,可用于一键启动apk(需要配合hotkey.xml) 674 KEYCODE_USER_DEF_FUNCTION8 1117
IRKEY_USER_DEF_FUNCTION9 预置按键,可用于一键启动apk(需要配合hotkey.xml) 675 KEYCODE_USER_DEF_FUNCTION9 1118
IRKEY_USER_DEF_FUNCTION10 预置按键,可用于一键启动apk(需要配合hotkey.xml) 676 KEYCODE_USER_DEF_FUNCTION10 1119
IRKEY_YOUTUBE 一键启动YouTube 662 KEYCODE_CVT_YOUTUBE 1093
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
KEYCODE_CVT_YOUTUBE
IRKEY_NETFLIX 一键启动Netflix 663 KEYCODE_CVT_NETFLIX 1094
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
KEYCODE_CVT_NETFLIX
IRKEY_FILE_BROWER 一键启动文件浏览器(hotkey没有配置) 660 KEYCODE_CVT_FILE_BROWER 1091
功能类似于
KEYCODE_USER_DEF_FUNCTION1~10
这个背景是之前为了做统一,在972上加了一波这样的app key
但是从实际的配置来看,这个做法并没有推广开来
IRKEY_APP_LIST 一键启动app list(hotkey没有配置) 661 KEYCODE_CVT_APP_LIST 1092
IRKEY_SKYPE 一键启动SKYPE(hotkey没有配置) 664 KEYCODE_CVT_SKYPE 1095
IRKEY_GOOGLE_PLAY_STORE 一键启动GOOGLE_PLAY_STORE(hotkey没有配置) 665 KEYCODE_CVT_GOOGLE_PLAY_STORE 1096
IRKEY_FACEBOOK 一键启动FACEBOOK(hotkey没有配置) 666 KEYCODE_CVT_FACEBOOK 1097
IRKEY_AMAZON_PRIME_VIDEO 一键启动AMAZON_PRIME_VIDEO(hotkey没有配置) 667 KEYCODE_CVT_AMAZON_PRIME_VIDEO 1098
IRKEY_HOTSTAR 一键启动HOTSTAR(hotkey没有配置) 668 KEYCODE_CVT_HOTSTAR 1099
IRKEY_HANGAMA 一键启动HANGAMA(hotkey没有配置) 669 KEYCODE_CVT_HANGAMA 1100
IRKEY_EROSNOW 一键启动EROSNOW(hotkey没有配置) 670 KEYCODE_CVT_EROSNOW 1101
IRKEY_BROWSE_WWW 一键启动浏览器(hotkey没有配置) 1116 KEYCODE_CVT_BROWSER 1055
IRKEY_BROWSER_REFRESH 一键刷新浏览器页面 690 KEYCODE_BROWSER_REFRESH 1146
浏览器有两个
1、视若飞浏览器已支持
2、Android原生浏览器(功能没有加完整)
IRKEY_RETURN CHANNEL RECALL 625 KEYCODE_CHANNEL_RECALL 1032 功能实现在 智研apk LiveTVGlobal
IRKEY_CHANNEL_LIST 一键打开频道列表 634 KEYCODE_CHANNEL_LIST 1031
IRKEY_SLEEP 睡眠时间快捷键 629 KEYCODE_SLEEP_TIME 1046
IRKEY_FREEZE
FREEZE功能
公版做法:
1、通道全屏无信号下,不应响应freeze按键,弹个toast “Not available”;(553会响应,920做成不响应,972按照920做法实现)
2、在小窗口播放节目,按下freeze键进入freeze状态,按home/确定键进入全屏播放,强制解freeze;
3、在通道下全屏播放,按下freeze键进入freeze状态,按home跳转到Launcher小窗口时强制解freeze;
4、在freeze状态下,执行删除频道,切换画面比例,菜单复位(menu reset),freeze需要解除;
5、在freeze状态下,执行搜台,搜台结束时,应取消freeze;
6、在freeze状态下,切通道时,应取消freeze;
7、在freeze状态下,按CH+、CH-切频道时,应取消freeze。
628 KEYCODE_FREEZE 1047 功能实现在tvapi
IRKEY_ECO ECO模式 1130 KEYCODE_CVT_ECO 1059
UI在 global UI
涉及宏配置:
CVT_EN_ECO_BACKLIGHT_MOD
CVT_DEF_ECO_HIGH_BACKLIGHT
CVT_DEF_ECO_MID_BACKLIGHT
CVT_DEF_ECO_LOW_BACKLIGHT
CVT_DEF_ECO_OFF_BACKLIGHT
逻辑在tvapi,看懂这个就知道怎么配置了
IRKEY_ATV 一键打开ATV通道 1094 KEYCODE_TV_INPUT_ATV 1001
通道键,公版默认支持
INPUTSOURCE_ATVIRKEY_AV 一键打开AV通道 1103 KEYCODE_TV_INPUT_AV 1014
通道键,公版默认支持
INPUTSOURCE_AV
IRKEY_HDMI 一键打开HDMI通道 1097 KEYCODE_TV_INPUT_HDMI 1008
通道键,公版默认支持
INPUTSOURCE_HDMI
IRKEY_SYS_SETTING
一键跳转到系统设置应用
645 KEYCODE_IR_SYS_SETTING 1148
公版默认支持,hotkey.xml已有,只需要配置按键即可
KEYCODE_IR_SYS_SETTINGIRKEY_FAC_AUTO_ATV_TUNING ATV一键自动搜台(只在ATV通道下有作用) 680 KEYCODE_FAC_AUTO_ATV_TUNING 1138
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
EntryChannelSearch
KEYCODE_FAC_AUTO_ATV_TUNING
IRKEY_FAC_VOL_80 一键设置音量80 681 KEYCODE_FAC_VOL_80 1139 公版默认支持,功能实现在tvapi,配置按键即可
IRKEY_FAC_SHIP_INIT 一键工厂复位 682 KEYCODE_FAC_SHIP_INIT 1140 公版默认支持,功能实现在tvapi,配置按键即可
IRKEY_FAC_OPEN_AGING_MODE 一键打开老化模式(和 IRKEY_AT_AGING_MODE 有点重复) 683 KEYCODE_FAC_OPEN_AGING_MODE 1141
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
com.cvte.tv.api.at.TvAgingService.commmand.aging_mode
KEYCODE_FAC_OPEN_AGING_MODE
IRKEY_FAC_CLOSE_AGING_MODE 一键关闭老化模式 684 KEYCODE_FAC_CLOSE_AGING_MODE 1142
公版默认不支持,客户需求要配置hotkey.xml和对应的IR按键
com.cvte.tv.api.at.TvAgingService.commmand.aging_mode_close
KEYCODE_FAC_CLOSE_AGING_MODE
这个是要在AgingKey,进入老化是hotkey
IRKEY_EYE_SAFE 一键打开eye safe模式 685 KEYCODE_PIC_EYE_SAFE 1143 实现在tvapi processEyeSafeKeyEvent
IRKEY_AT_AUTO_TUNING
~
IRKEY_FACAPI_REST_TVRESET
AT使用
AT使用
IRKEY_AT_F1 AT F1复位功能 0x315 这些AT的按键都是没有上抛到Android层的
IRKEY_AT_AGING_MODE 一键进入老化模式 0x300
IRKEY_AT_VERSION 一键打开工厂菜单 System Info页面 0x301
IRKEY_AT_F2 一键打开工厂菜单 0x303
IRKEY_REPEAT 多媒体下设置播放模式,重复、单曲循环等 643 KEYCODE_MEDIA_REPEAT 1076
IRKEY_AT_AUTO_TUNING
0x302
没作用
IRKEY_AT_WINDOW_SHOW
0x310
没作用
IRKEY_PAIRE_GUIDE 蓝牙配置页面 686 KEYCODE_PAIRE_GUIDE 1144 没有功能
IRKEY_CHAOYE_FACTORY_REQUIREMENT 朝野客户工厂需求 687 KEYCODE_CHAOYE_FACTORY_REQUIREMENT 1145 因tvapi是继承972的,这部分功能没有验证,请勿使用
IRKEY_FAV_ADD_ERASE
633 KEYCODE_FAV_ADD_ERASE 1044 没有功能
IRKEY_APP_BACK
没有功能
IRKEY_ADJUST
没有功能,不带VGA通道
IRKEY_DTV
没有功能,不带DTV
IRKEY_AV2
没有功能
IRKEY_HDMI2
没有功能
IRKEY_APPS
没有功能
IRKEY_PLAY_ONLY
没有功能,可能后面会用到,follow 920 5.1
IRKEY_PAUSE_ONLY
没有功能,可能后面会用到,follow 920 5.1
IRKEY_ATV_DTV
没有功能,不带DTV
IRKEY_SLIPPING_UI
没有功能,现在都用ir mouse一个按键 + 宏
CVT_EN_MOUSE_SLIDEMENU_KEY
IRKEY_OPEN_TV_LIVE_APK
没有功能,可能后面会用到,follow 920 5.1
IRKEY_ESHARE 一键启动ESHARE(hotkey没有配置) 671 KEYCODE_CVT_ESHARE 1102 Android 9.0不再用 eshare
IRKEY_TT_TTX 图文键 626 KEYCODE_TTX_TEXT 1034
图文功能未开发
IRKEY_TT_CC
IRKEY_TT_INDEX
658 KEYCODE_TTX_INDEX 1035
IRKEY_TT_MIX
IRKEY_TT_HOLD
654 KEYCODE_TTX_HOLD 1036
IRKEY_TT_SIZE
657 KEYCODE_TTX_SIZE 1037
IRKEY_TT_REVEAL
656 KEYCODE_TTX_REVEAL 1038
IRKEY_TT_SUBPAGE
655 KEYCODE_TTX_SUBPAGE 1039