java - Arduino/Android远程控制

标签 java android arduino

我正在开发一个Android应用程序,通过wifi网络与arduino车辆进行通信。 我通过 EditText 字段发送命令,其中使用 w、q、s、d 来启动、停止、左转和右转。该解决方案运行良好...... 但我想要的是创建 4 个按钮,而不是将命令直接发送到 arduino,而且我不知道应该在单击时调用哪种方法。

 public void onClick(View view) {
                try {
                    EditText et = (EditText) findViewById(R.id.EditText01);
                    String str = et.getText().toString();
                    PrintWriter out = new PrintWriter(new BufferedWriter(
                            new OutputStreamWriter(socket.getOutputStream())),
                            true);                    
                   out.println(str);
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

最佳答案

您可以对所有 4 个按钮重复使用相同的方法。只需通过 id 来区分即可

public void onClick(View view) {
 String command = null;
 switch (view.getId()) {
      case R.id.button1:
        command = "w";
        break;
      case R.id.button2:
        command = "a";
        break;
      case R.id.button3:
        command = "d";
        break;
      case R.id.button4:
        command = "s";
        break;
  }

  try {
     PrintWriter out = new PrintWriter(new BufferedWriter(
                        new OutputStreamWriter(socket.getOutputStream())),
                        true);                    
     out.println(command);
  } catch (UnknownHostException e) {
     e.printStackTrace();
  } catch (IOException e) {
     e.printStackTrace();
  } catch (Exception e) {
     e.printStackTrace();
  }
}

在 XML 中:

<Button
     android:id="@+id/button1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:onClick="onClick"
     android:text="w" 
/>

<Button
     android:id="@+id/button2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:onClick="onClick"
     android:text="d" 
/>

<Button
     android:id="@+id/button3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:onClick="onClick"
     android:text="s" 
/>

<Button
     android:id="@+id/button4"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:onClick="onClick"
     android:text="a" 
/>

关于java - Arduino/Android远程控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910704/

相关文章:

java - 我如何继承系统的抗锯齿设置来像 swing 一样将文本绘制到屏幕外的图像上?

java - java中的xml文件

android - 录制的声音文件(ala google now,google keep)- RecognizerIntent/Listener

android - 对齐到相对布局的右侧似乎不起作用

c++ - Linux 串口 : missing data on input

c - Arduino串行通信:本地回声人类角色输入

java - 如何在 Android API < 26/Java 7 中使用 Gson 反序列化 YearMonth?

java - Regex/javax.validation 帮助 -- 验证是否存在空白 -- Java

java - 连接 JSONArrays

c - Arduino 程序资源不足