Android蓝牙手柄开发

2020-09-15  本文已影响0人  超级绿茶

首先拿到手柄后需要在系统的蓝牙设置中配对,必须配对成功后才能进行后续的开发任务。这里以北通手游G1手柄和小米9手机为例:


IMG_20191120_100910.jpg

上图就是BETOP W1 BFM就是要配对的手柄名称,在名称下面显示的“已连接”表示手柄和手机连接成功,如果没有这个提示就需要点击手柄名称来连接。

为了验证手柄是否连接成功最好的办法是装手柄厂商配套的app应用,这里装的是“左游游戏厅”。通过这个app的检验功能可以明确的知道我们的手柄是否和手机连接正常。


Screenshot_2019-11-20-10-30-03-296_com.zuoyou.cen.jpg

连接成功后就可以开始我们的开发任何了,手柄和触屏一样都是通过控件的回调事件来获取手柄上的按键信息,但在此之前请注意一定要给你的控件设置焦点,不然会没法响应回调事件;

android:focusable="true"
android:focusableInTouchMode="true"
android:focusedByDefault="true"

然后在代码中设置按键和摇杆的监听事件:

// 摇杆响应事件
viewTouch.setOnGenericMotionListener(new View.OnGenericMotionListener() {
    @Override
    public boolean onGenericMotion(View v, MotionEvent event) {
        return false;// 是否把事件传给子控件
    }
});
// 按键响应事件
viewTouch.setOnKeyListener(new View.OnKeyListener(){
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        return false;
    }
});

如果熟悉触屏的Touch机制的应该很容易明白上述的代码,onGenericMotion和onKey方法都有一个返回值,其作用和onTouch方法的返回值作用,为true说明你已经成功执行按键方法了,事件就结束不会以再传递给其它控件了。

setOnGenericMotionListener监听所有与MotionEvent.AXIS常量相关的事件,setOnKeyListener监听所有与按键相关的事件。

现在我们来说一下摇杆事件;

接着我们来说一下MotionEvent和KeyEvent定义的相关事件:


joy.png

官方API文档:https://developer.android.com/training/game-controllers/controller-input.html#dpad

点击链接加入群聊【口袋里的安卓】:https://jq.qq.com/?_wv=1027&k=5z4fzdT
或关注微信公众号:

上一篇下一篇

猜你喜欢

热点阅读