Использование java.awt.robot в службе приложений Android - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь использовать java.awt.Robot в приложении для Android с этим кодом

Robot robot = null;
try {
    robot = new Robot();
} catch (AWTException e) {
    e.printStackTrace();
}

// Simulate a key press
robot.keyPress(KeyEvent.KEYCODE_A);
robot.keyRelease(KeyEvent.KEYCODE_A);

По умолчанию кажется, что

import java.awt.Robot;

недоступно в Android SDK,Поэтому для этого я попытался импортировать .jar, скачанный с http://www.java2s.com/Code/Jar/j/Downloadjavartjarstubs150jar.htm с именем

java-rt-jar-stubs-1.5.0.jar

Но когда я запускаю приложение в этой строке кода

robot = new Robot();

Iполучите это исключение

java.lang.VerifyError: Verifier rejected class java.awt.Robot due to bad method void java.awt.Robot.<init>(java.awt.GraphicsDevice) (declaration of 'java.awt.Robot' appears in /data/app/com.example.myapp-1/split_lib_dependencies_apk.apk)

Итак, я начинаю думать, что, возможно, я не смогу использовать Java.awt.Robot, даже если я импортирую банку в зависимости от приложения.

КакВы можете видеть из кода, который мне нужен из моего Приложения (в частности, из моего намерения), чтобы эмулировать ввод с клавиатуры и записывать каждый вводимый текст.

Поэтому мне нужно отправлять текст на ввод, ориентированный как эмулированное нажатие клавиатуры.

Есть идеи?

PS: Я тоже пытался использовать это

Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendKeyDownUpSync( KeyEvent.KEYCODE_B );

с разрешением

<permission android:name="android.permission.INJECT_EVENTS" />

, но, видимо, его нельзя использовать изстороннее приложение, но только из проверенных Служб Google, потому что я получаю это исключение

java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
...