Как можно запустить обезьяну из приложения для 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"/>

в файл манифеста,

Что позволяет приложению наблюдать и контролировать, как действия запускаются глобально в системе. Только для находится в отладке (обычно команда обезьяны).

И, к сожалению, это разрешение доступно только для системных приложений. То есть оно может быть применимо только к приложениям, которые

  1. система - предустановлена ​​в прошивке устройства

или же
2. приложения, которые подписаны "ключом платформы", то есть тем же ключом, который использовался для подписания прошивки.

Другие вопросы по тегам