Медленное выполнение функции - DataOutPutStream - PullRequest
0 голосов
/ 05 сентября 2018
private void sendCommand(String cmd) {
        Process process = null;
        try {
            process = Runtime.getRuntime().exec("su");
            DataOutputStream os = new DataOutputStream(process.getOutputStream());
            os.writeBytes(cmd);
            os.writeBytes("exit\n");
            os.flush();
            os.close();
            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }


String cmd = "/system/bin/input tap 244 580\n";
sendCommand(cmd);
Log.d("Tap","first");
sendCommand(cmd);
Log.d("Tap","second");

09-06 01: 09: 43,878 13600-13600 / com.example.na D / Tap: первый

09-06 01: 09: 46,178 13600-13600 / com.example.na D / Tap: второй

Это действительно очень медленно, я хотел имитировать, как двойной сигнал с задержкой около 200 мс между двумя нажатиями. но самое быстрое это может сделать 3 секунды ..... Пожалуйста, совет.

Обновление - Попробовал, все же задержка между каждым касанием есть, хотя и быстрее.

process = Runtime.getRuntime().exec("su");
            DataOutputStream os = new DataOutputStream(process.getOutputStream());
            cmd = "/system/bin/input tap 244 580\n";
            os.writeBytes(cmd);
            cmd = "/system/bin/input tap 244 580\n";
            os.writeBytes(cmd);
            os.writeBytes("exit\n");
            os.flush();
            os.close();
            process.waitFor();
...