如何实现onTouch事件监听器来控制汽车

时间:2017-03-14 17:29:55

标签: java android bluetooth

我正在尝试创建一个Android应用程序,当用户点击按钮(保持按钮)时,应用程序将通过蓝牙将数据发送到蓝牙模块(HC-05),当用户释放按钮时,另一个应发送数据以停止汽车。 我尝试使用以下代码进行操作,但它无法正常运行:

forwardButton.setOnTouchListener(new View.OnTouchListener(){
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN){
                sendData("F");
                return false;
            }

            if (motionEvent.getAction() == MotionEvent.ACTION_UP){
                sendData("S");
                return true;
            }
            return true;
        }
    });

//This method is to send data
public void sendData(String data){
    if(mBTSocket != null){
        try{
            mBTSocket.getOutputStream().write(data.getBytes());
            Toast.makeText(getApplicationContext(), "Sent data " + data, Toast.LENGTH_SHORT).show();
        }
        catch (IOException io){
            Toast.makeText(getApplicationContext(),"Unable to send data",Toast.LENGTH_SHORT).show();
        }
    }
}

我在另一端使用Arduino以及蓝牙模块来接收数据和进行处理。
但上面的代码不能正常工作,有时它会开始移动,并且不会在释放按钮时停止。
顺便说一下,这些方法都在 MainActivity onCreate()方法内。
Plz帮助,我在代码中做错了什么。

0 个答案:

没有答案