Czy można symulować dotyk z aplikacji w tle (lub usługi) lub uruchomić skrypt sh (symulujący dotyk)?Jak symulować dotyk z usługi w tle za pomocą sendevent lub w inny sposób?
Jest to potrzebne do testowania systemu Android bez USB lub innego połączenia z komputerem, dlatego nie mogę (lub nie wiem jak) korzystać z Monkey lub innych narzędzi autotestu.
Dodany info: znalazłem drogę do wykonywania poleceń powłoki z korzeni (przetestowanych urządzeń zakorzenione):
Unable to execute sendevent shell command through the android code (tworzenie symulacji dotykowego). Writing file on system partition (uruchom komendy z uprawnieniami root'a)
Dostaję także zdarzenia symulujące dotyk.
W rezultacie mam:
//sendevent commands to simulate touch (verify it work from cmd)
String[] touchEvent = { "sendevent /dev/input/event0 0 0 0\n",
"sendevent /dev/input/event6 3 53 499\n",
"sendevent /dev/input/event6 3 54 680\n",
"sendevent /dev/input/event6 3 58 40\n",
"sendevent /dev/input/event6 3 48 3\n",
"sendevent /dev/input/event6 3 57 0\n",
"sendevent /dev/input/event6 0 2 0\n",
"sendevent /dev/input/event6 0 0 0\n",
"sendevent /dev/input/event6 0 2 0\n",
"sendevent /dev/input/event6 0 0 0\n",
"sendevent /dev/input/event0 3 0 2\n",
"sendevent /dev/input/event0 0 0 0\n"};
try{
Thread.sleep(2000);
Process root = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(root.getOutputStream());
for(int i = 0; i < touchEvent.length; i++){
Log.i(TAG, touchEvent[i]);
os.writeBytes(touchEvent[i]);
os.flush();
}
root.waitFor();
} catch (IOException e) {
Log.e(TAG, "Runtime problems\n");
e.printStackTrace();
} catch (SecurityException se){
se.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
nie mam żadnych wyjątków, ale nie dotykać symuluje.
Czy ktoś może pomóc rozwiązać ten problem?
Jeśli jest inny sposób na zrobienie tego z Androidem ndk lub demonem na C, proszę, powiedz mi o tym.
Dzięki.
Jeśli w tej samej sieci lokalnej można używać małp, funkcja adb będzie działać również bezprzewodowo. – L7ColWinters
Dzięki za odpowiedź. Wiem o tym, ale nie powinno być żadnego połączenia (WiFi i BT powinny być wyłączone). – v1k
Witam, jak w końcu to osiągnąć? Podążyłem za wszystkimi twoimi krokami, ale żadnych dobrych wiadomości, przejrzyj moje pytanie, które opublikowałem [tutaj] (http://stackoverflow.com/questions/42745005/android-self-signed-apk) –