Android蓝牙手柄开发
<h1 id="android蓝牙手柄va-013开发">Android蓝牙手柄VA-013开发</h1><h2 id="va-013简介">VA-013简介</h2>
<p>待补充</p>
<h1 id="采用xmode开机方式led3灯亮模式">采用“X”+MODE开机方式,LED3灯亮模式</h1>
<h2 id="摇杆类变量">摇杆类变量</h2>
<table>
<thead>
<tr>
<th style="text-align: center">名</th>
<th style="text-align: center">值</th>
<th style="text-align: center">按键</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">MotionEvent.AXIS_BRAKE</td>
<td style="text-align: center">(Float)1/0</td>
<td style="text-align: center">L2按下/松开(短按)</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_GAS</td>
<td style="text-align: center">(Float)1/0</td>
<td style="text-align: center">R2按下/松开(短按)</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_HAT_Y</td>
<td style="text-align: center">(Float)-1/0/1</td>
<td style="text-align: center">上键按下/松开/下键按下</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_HAT_X</td>
<td style="text-align: center">(Float)-1/0/1</td>
<td style="text-align: center">左键按下/松开/右键按下</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_X</td>
<td style="text-align: center">(Float)-1~1</td>
<td style="text-align: center">左摇杆X轴</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_Y</td>
<td style="text-align: center">(Float)-1~1</td>
<td style="text-align: center">左摇杆Y轴</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_Z</td>
<td style="text-align: center">(Float)-1~1</td>
<td style="text-align: center">右摇杆X轴</td>
</tr>
<tr>
<td style="text-align: center">MotionEvent.AXIS_RZ</td>
<td style="text-align: center">(Float)-1~1</td>
<td style="text-align: center">右摇杆Y轴</td>
</tr>
</tbody>
</table>
<pre><code class="language-kotlin"> override fun onGenericMotionEvent(event: MotionEvent?): Boolean {
if (event != null){
var str:String
when {
event.getAxisValue(MotionEvent.AXIS_BRAKE) == 1.toFloat() -> {
str = "L2按下"
sendAndShowResetOrder()
}
event.getAxisValue(MotionEvent.AXIS_GAS) == 1.toFloat() -> {
str = "R2按下"
sendAndShowResetOrder()
}
event.getAxisValue(MotionEvent.AXIS_HAT_Y) == (-1).toFloat() -> {
str = "上键"
sendAndShowOrder(4,0)
}
event.getAxisValue(MotionEvent.AXIS_HAT_Y) == 1.toFloat() -> {
str = "下键"
sendAndShowOrder(4,1)
}
event.getAxisValue(MotionEvent.AXIS_HAT_X) == (-1).toFloat() -> {
str = "左键"
sendAndShowOrder(4,2)
}
event.getAxisValue(MotionEvent.AXIS_HAT_X) == 1.toFloat() -> {
str = "右键"
sendAndShowOrder(4,3)
}
else -> {
str = "左摇杆x:" + event.getAxisValue(MotionEvent.AXIS_X).toString() + ";y:" + event.getAxisValue(MotionEvent.AXIS_Y).toString() + "\t右摇杆x" + event.getAxisValue(MotionEvent.AXIS_Z).toString() + ";y:" + event.getAxisValue(MotionEvent.AXIS_RZ).toString()
}
}
// msg.text = str
}
return true
}
</code></pre>
<h2 id="按键类变量">按键类变量</h2>
<table>
<thead>
<tr>
<th style="text-align: center">keyCode</th>
<th style="text-align: center">按键</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">96</td>
<td style="text-align: center">A键</td>
</tr>
<tr>
<td style="text-align: center">97</td>
<td style="text-align: center">B键</td>
</tr>
<tr>
<td style="text-align: center">99</td>
<td style="text-align: center">X</td>
</tr>
<tr>
<td style="text-align: center">100</td>
<td style="text-align: center">Y</td>
</tr>
<tr>
<td style="text-align: center">102</td>
<td style="text-align: center">L1</td>
</tr>
<tr>
<td style="text-align: center">103</td>
<td style="text-align: center">R1</td>
</tr>
<tr>
<td style="text-align: center">104</td>
<td style="text-align: center">L2(长按)</td>
</tr>
<tr>
<td style="text-align: center">105</td>
<td style="text-align: center">R2(长按)</td>
</tr>
<tr>
<td style="text-align: center">106</td>
<td style="text-align: center">左摇杆按下</td>
</tr>
<tr>
<td style="text-align: center">107</td>
<td style="text-align: center">右摇杆按下</td>
</tr>
<tr>
<td style="text-align: center">108</td>
<td style="text-align: center">START键</td>
</tr>
<tr>
<td style="text-align: center">109</td>
<td style="text-align: center">SELECT键</td>
</tr>
</tbody>
</table>
<pre><code class="language-kotlin">override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
var str:String
when (keyCode) {
// 监控/拦截/屏蔽A方向键
96 ->{
str = "A键"
}
// 监控/拦截/屏蔽B方向键
97 ->{
str = "B键"
}
99 -> {
str = "X键"
}
100 ->{
str = "Y键"
}
102 ->{
str = "L1键"
}
103 ->{
str = "R1键"
}
// 长按触发,短按为 L2按下
104 ->{
str = "L2键"
}
// 长按触发,短按为 R2按下
105 ->{
str = "R2键"
}
106 ->{
str = "左摇杆按下键"
}
107 ->{
str = "右摇杆按下键"
}
108 ->{
str = "START键"
}
109 ->{
str = "SELECT键"
}
else -> str = "keyCode: $keyCode"
}
msg.text = str
return true
}
</code></pre><br><br>
来源:https://www.cnblogs.com/cnwy/p/13822285.html
頁:
[1]