Я работаю над проектом, цель которого - помочь инвалидам лучше использовать свои устройства Android (в основном для образовательных целей).Мы пришли к некоторой идее об альтернативном устройстве ввода и использовали команду ввода, чтобы воспроизвести это на экране.На данный момент мы должны выполнить рутинг телефона и использовать команду ввода
input tab x y
Но для выполнения одной вкладки потребовалось около 3 секунд, что слишком медленно.После глубокого изучения документов я наткнулся на sendevent.c
и понял, что он открывает и закрывает файл интерфейса для каждой команды.В любом случае я могу записать ввод непосредственно в этот файл, что может улучшить задержку для каждой отдельной вкладки?
Есть ли альтернативный способ воспроизведения ввода?я знаю много приложений в appstore, которые могут очень быстро выполнять вкладку без рута.
Большое спасибо
Редактировать: Это блок кода, который я использую:
int i = 0;
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
while (true){
try {
Process process = null;
process = Runtime.getRuntime().exec("su", null, null);
DataOutputStream os = new DataOutputStream(process.getOutputStream());
String cmd = "/system/bin/input tap " + 273 + " " + (232+90) + "\n"; //760 116
os.writeBytes(cmd);
os.writeBytes("exit\n");
os.flush();
os.close();
process.waitFor();
} catch(Exception e) {
Log.i("CommandSU", e.toString());
i--;
}
i++;
if (i >= 1){
break;
}
}