【发布时间】:2022-06-11 21:12:37
【问题描述】:
我需要使用 EVIOCSREP 和 EVIOCGREP ioctl 调用为 Android TV 设备远程事件设置自动重复延迟和周期,但是这些值没有设置,并且在调试时会打印垃圾值。
代码更改
/*Changes start for adding delay*/
unsigned long prev[2];
unsigned long repeat[2];
ioctl(device_file_desc, EVIOCGREP, prev); /* get current values */
__android_dishlog_print(ANDROID_LOG_DEBUG, "remote",
"Time delay and period default are %lu and %lu",prev[0],prev[1]);
repeat[0]=10000;
repeat[1]=5000;
ioctl(device_file_desc, EVIOCSREP, repeat); /* write new values */
ioctl(device_file_desc, EVIOCGREP, prev); /* get new values */
__android_dishlog_print(ANDROID_LOG_DEBUG, "remote",
"Time delay and period after setting are %lu and %lu",prev[0],prev[1]);
/*Changes end for adding delay*/
正在打印以下时间值。
时间延迟和周期默认为 4062552512 和 2805566749 设置后的时间延迟和周期分别为 4062552512 和 2805566749
还有其他 ioctl 可用于设置远程按钮按下和释放之间的自动重复时间吗?
【问题讨论】:
标签: android linux-device-driver android-tv ioctl