新昌一股清泉 發表於 2020-10-15 18:51:00

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() -&gt; {
                  str = "L2按下"
                  sendAndShowResetOrder()
                }
                event.getAxisValue(MotionEvent.AXIS_GAS) == 1.toFloat() -&gt; {
                  str = "R2按下"
                  sendAndShowResetOrder()
                }
                event.getAxisValue(MotionEvent.AXIS_HAT_Y) == (-1).toFloat() -&gt; {
                  str = "上键"
                  sendAndShowOrder(4,0)
                }
                event.getAxisValue(MotionEvent.AXIS_HAT_Y) == 1.toFloat() -&gt; {
                  str = "下键"
                  sendAndShowOrder(4,1)
                }
                event.getAxisValue(MotionEvent.AXIS_HAT_X) == (-1).toFloat() -&gt; {
                  str = "左键"
                  sendAndShowOrder(4,2)
                }
                event.getAxisValue(MotionEvent.AXIS_HAT_X) == 1.toFloat() -&gt; {
                  str = "右键"
                  sendAndShowOrder(4,3)
                }
                else -&gt; {
                  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 -&gt;{
                str = "A键"
            }
            // 监控/拦截/屏蔽B方向键
            97 -&gt;{
                str = "B键"
            }
            99 -&gt; {
                str = "X键"
            }
            100 -&gt;{
                str = "Y键"
            }
            102 -&gt;{
                str = "L1键"
            }
            103 -&gt;{
                str = "R1键"
            }
            // 长按触发,短按为 L2按下
            104 -&gt;{
                str = "L2键"
            }
            // 长按触发,短按为 R2按下
            105 -&gt;{
                str = "R2键"
            }
            106 -&gt;{
                str = "左摇杆按下键"
            }
            107 -&gt;{
                str = "右摇杆按下键"
            }
            108 -&gt;{
                str = "START键"
            }
            109 -&gt;{
                str = "SELECT键"
            }
            else -&gt; str = "keyCode: $keyCode"
      }
      msg.text = str
      return true
    }
</code></pre><br><br>
来源:https://www.cnblogs.com/cnwy/p/13822285.html
頁: [1]
查看完整版本: Android蓝牙手柄开发