Ich habe ein Shell-Skript, das wie folgt aussieht:
# /mnt/sdcard/touch.sh
sleep 10
while [ 1 ]; do
input swipe 700 380 1020 600 1000
input tap 960 540
input swipe 1220 700 900 480 1000
input tap 960 540
input swipe 1220 700 900 480 1000
input tap 960 540
input swipe 700 380 1020 600 1000
input tap 960 540
done
Wenn ich es von Terminal IDE (einem Terminal-Emulator) aus ausführe, funktioniert es nur, während Terminal IDE im Vordergrund ist, also dachte ich, ich würde eine tatsächliche App erstellen, um es auszuführen und es im Hintergrund laufen zu lassen. Hier ist, was ich jetzt habe:
package com.mycompany.myapp;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.io.*;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
// RIGHT HERE. WHY DOES NOTHING HAPPEN?
Runtime.getRuntime().exec(new String[]{"/system/bin/sh", "/mnt/sdcard/touch.sh", });
}
catch (IOException e) {/*...*/}
}
}
Aber es bringt nichts.
Wie würde ich das also ausführen und es dann im Hintergrund laufen lassen, damit die Taps und Swipes passieren, während eine andere App im Vordergrund ist? Du hast die Idee. :D
Es funktionierte, indem man es einfach tat, sh /mnt/sdcard/touch.sh &
nachdem man eine Shell mit gestartet hatte adb shell
. Als ich dann das Terminal zwangsweise schloss, während der Prozess im Hintergrund lief, lief der Prozess wie erwartet im Hintergrund meines Telefons weiter. Ich konnte den Prozess später beenden, indem ich mit adb shell
der Verwendung ps
die Prozess-ID fand und kill -s KILL <ID>
beendete.
Im Grunde stellte sich heraus, dass ich keine Android-App erstellen musste, nur um mein Skript im Hintergrund laufen zu lassen. Zusammenstoß auf ...
adb shell
konnte ich es ohne Root nur innerhalb von mir tun. Wenn ich genau das gleiche Skript in einer Android-Terminal-App ausführe, konnte ich nur den gleichen Effekt erzielen (um tatsächlich etwas Berührendes zum Laufen zu bringen ), nachdem ich root mit aktiviert hatte su
! irgendwelche Anhaltspunkte woran das liegen könnte?
janot