Как можно запустить обезьяну из приложения для Android
Я пытаюсь запустить 'adb shell monkey' из моего приложения для другого приложения, используя код ниже:
String[] command = null;
command = new String[] {
"monkey", "-p", "com.example.appname", "-v", "500" };
if(command != null){
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
dumpStream(process.getInputStream());
dumpStream(process.getErrorStream());
LOGGER.error("" + process.exitValue());
if(process.exitValue() == 0 ){
}
}
Но это возвращает мне только:
12-11 14:45:47.525: E/MainActivity: main(15436): App /data/data/com.example.app/files/adb -> true
12-11 14:45:47.565: E/MainActivity: main(15436): App adb exit value: 0
12-11 14:45:51.149: E/MainActivity: main(15436): App /data/data/com.example.app/files/adb -> true
12-11 14:46:03.172: E/MainActivity: main(15436): App:Monkey: seed=1387859337757 count=500
12-11 14:46:03.172: E/MainActivity: main(15436): App:AllowPackage: com.example.appname
12-11 14:46:03.172: E/MainActivity: main(15436): App:IncludeCategory: android.intent.category.LAUNCHER
12-11 14:46:03.182: E/MainActivity: main(15436): App:IncludeCategory: android.intent.category.MONKEY
С кодом выхода: 9
Может быть, кто-нибудь знает, как можно запустить "обезьяну" из приложения Android?
1 ответ
Бежать monkey
из приложения для Android вам нужно добавить разрешение
<uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>
в файл манифеста,
Что позволяет приложению наблюдать и контролировать, как действия запускаются глобально в системе. Только для находится в отладке (обычно команда обезьяны).
И, к сожалению, это разрешение доступно только для системных приложений. То есть оно может быть применимо только к приложениям, которые
- система - предустановлена в прошивке устройства
или же
2. приложения, которые подписаны "ключом платформы", то есть тем же ключом, который использовался для подписания прошивки.