电视盒子为什么不支持我的手柄(未完)
百度了两天。
目前找到了 adb 的用法 正在学习。
1. adb devices 找到我的设备
2. adb shell getevent -p /dev/input/event0 来查看event
3. adb shell getevent -lp /dev/input/event0 来查看event
通过adb -s <serial number> cmd向设备发送adb命令。
比如:运行命令shell。
C:\Users\Administrator>adb -s SH0A6PL00243 shell
关于event
http://blog.csdn.net/lichaoandy/article/details/6565893
关于shoubing
http://blog.csdn.net/cnsword/article/details/13005259
使用event
http://wenku.baidu.com/link?url=IrBLgPvf1krBETAvytkiH9Ik2gFunX3XdFeVz9Y6aew5ZttZuQt8GvAzUf8bZR9v-ne94a5hyI_zGHWZQG1G1AjV-R_vs4iPc3AMwGauRwa
adb shell
此命令进入设备的shell中。这时会有一个#号出现
下面用法用来模拟按键
input keyevent 4//返回上一级 Home 3 Menu 82 右:22 左:21 下:20 上:19 OK:23 音量加:24 音量减:25
http://www.putaogame.com/thread-626-1-1.html
1.3,确定手柄方向键摇杆信息
在安卓装个终端模拟器,依次运行
su
getevent -p
此时就会显示所有输入设备的信息,摘抄我的手柄信息
add device 1: /dev/input/event8 name: "HOLTEK JY-P58U Series MICRO GRIP Pro" events: KEY (0001): 0120 0121 0122 0123 0124 0125 0126 0127 0128 0129 012a 012b ABS (0003): 0000 : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0 0001 : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0 0002 : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0 0005 : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0 0010 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0 0011 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0 MSC (0004): 0004 input props: <none>
主要看abs后面有6行,代表6个相对坐标参数,是两个摇杆,方向键的数据,记录每行开始的数字,这里是0,1,2,5,10,11
另外,可以看到key后列了12个数字,是16进制,转换成10进制应该和1.2抄的扫描码相同
2 编写配置文件
2.1 用文件管理器,进到根目录、data/app里找到你装的游戏
如合金弹头x的名字是com.putaolab.emu2.hejindantoux-1.apk
简单的办法就是看图标认程序
2.2用es文件管理器选择apk,菜单选打开(直接点是安装,菜单打开是查看zip内部)
在里面assets\ptsdk\c文件夹应该能看到很多类似
Vendor_1241_Product_5045_Version_0100.pkl的文件。随便解压出来一个
2.3将文件名改成你的手柄的vid/pid.后面version的数字不知什么意思,看起来是4位数字,大部分文件是0或1
这么一来就有十六种可能,一会写完文件,复制16份,分别叫0000,0001,0010一直到1111,就行
2.4打开文件,内容可能如下
# Gamepad scancode to destination GPCode # For SANWA Supply JY-P58U USB Controller # "HOLTEK JY-P58U Series MICRO GRIP Pro" # Vendor_1241_Product_5045 #cfg_mouse_reverse 0 0 key 288 96 key 290 97 key 289 99 key 291 100 key 292 102 key 294 103 key 293 243 key 295 244 key 296 4 key 297 108 key 298 106 key 299 107 axis 0x00 0 axis 0x01 1 axis 0x02 11 axis 0x05 14 axis 0x10 15 axis 0x11 16
以#开头的行是注释,写什么都无所谓
下面key开头的是按键映射,后面两个数字是按键scan code(1.2记录的)和目标键值
如288是我的A键的scancode,96是系统标准button A的数值
上面依次定义A,B,X,Y,L1,R1,L2,R2,slelct,start,左摇杆按下,右摇杆按下
(目标键值别改,具体可以百度akeycode_button_a,注意select,start和L2,R2的定义很特别)
以axis开头的是方向键和摇杆,对应1.3的数字,前面四个是两个摇杆,10,11是方向键
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库