Невозможно ввести ключевое событие ввода из моего приложения Android

Я хочу ввести ключевое событие «ввод» программно из своего приложения.

Я пробовал это с помощью команды оболочки abd, а также с помощью AccessibilityService, но не нашел в этом удачи.

Аналогичный вопрос был задан и здесь

Ниже приведен мой код, который я использовал для выполнения команды оболочки adb:

try {
    Runtime runtime = Runtime.getRuntime();

    Process p = runtime.exec("input keyevent 66");

    BufferedReader standardIn = new BufferedReader(new InputStreamReader(p.getInputStream()));
    BufferedReader errorIn = new BufferedReader(new InputStreamReader(p.getErrorStream()));

    String output = "";
    String line;
    while ((line = standardIn.readLine()) != null) {
        output += line + "\n";
    }
    while ((line = errorIn.readLine()) != null) {
        output += line + "\n";
    }

    Log.d("output", "" + output);
} catch (IOException e) {
    e.printStackTrace();
}

Я получаю следующий вывод:

sh: resetreason: can't execute: Permission denied

Кто-нибудь, пожалуйста, помогите мне.

Если кто-нибудь знает, как добиться этого с помощью AccessibilityService, сообщите мне.

Заранее спасибо!


person Wazz    schedule 08.04.2016    source источник


Ответы (1)


Добавьте это разрешение <uses-permission android:name="android.permission.ACCESS_SUPERUSER" /> и повторите попытку.

person Don Chakkappan    schedule 08.04.2016
comment
Добавлено вышеуказанное разрешение, но по-прежнему выдается та же ошибка вывода. - person Wazz; 08.04.2016
comment
Я думаю, что вышеуказанное разрешение и приведенный выше код будут работать только на рутированных устройствах. - person Wazz; 08.04.2016