Ich habe eine android
App zu rc Auto über wifi.I haben esp8266 nodemcu
WLAN-Modul für diesen Zweck verwendet. In meiner App. Es gibt 4 Tasten, die vorwärts, rückwärts, rechts und links sind. Ich kann dieses Modul über WLAN verbinden und einige grundlegende Operationen für ex. vorwärts bewegen, rückwärts gehen, rechts abbiegen, links abbiegen. Hier sind die Codes, die diese Operationen tut:Wie man zwei Tasten gedrückt Ereignis gleichzeitig in android
@Override
public boolean onTouch(View v, MotionEvent event) {
String action;
if (v.getId() == moveForward.getId())
action = "/forward/";
else if (v.getId() == moveReverse.getId())
action = "/reverse/";
else if (v.getId() == moveRigth.getId())
action = "/right/";
else
action = "/left/";
String serverAddress = ipAddress.getText().toString() + ":" + "80" + action;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
HttpRequestTask requestTask = new HttpRequestTask(serverAddress);
requestTask.execute("1");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
HttpRequestTask requestTask = new HttpRequestTask(serverAddress);
requestTask.execute("0");
}
return false;
}
private class HttpRequestTask extends AsyncTask<String, Void, String> {
private String serverAdress;
private String serverResponse = "";
public HttpRequestTask(String serverAdress) {
this.serverAdress = serverAdress;
}
@Override
protected String doInBackground(String... params) {
String val = params[0];
String url = "http://" + serverAdress + val;
Log.e("url", url);
try {
HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet();
getRequest.setURI(new URI(url));
HttpResponse response = client.execute(getRequest);
InputStream inputStream = null;
inputStream = response.getEntity().getContent();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(inputStream));
serverResponse = bufferedReader.readLine();
inputStream.close();
} catch (URISyntaxException e) {
e.printStackTrace();
serverResponse = e.getMessage();
} catch (ClientProtocolException e) {
e.printStackTrace();
serverResponse = e.getMessage();
} catch (IOException e) {
e.printStackTrace();
serverResponse = e.getMessage();
}
return serverResponse;
}
Wenn der Benutzer nach vorne gedrückt auch mit der rechten Taste oder links gedrückte Taste und das Auto geht nach vorne werden kann, und biegen Sie nach rechts oder umgekehrt bewegen und biegen Sie an der gleichen Zeit. Aber ich konnte keinen Weg wie ich mit den beiden Tasten gedrücktes Ereignis gleichzeitig im Code bearbeiten kann. Kannst du mir einen Weg zeigen?
hat Ihr Bildschirm Unterstützung Multi-Touch? –
@OussemaAroua Ich weiß es nicht. Wenn ja, wie geht man damit um? – user3059066
nur hinzufügen android: splitMotionEvents = "wahr" in Ihrem Content-Layout –