我正在尝试通过此代码在android应用程序上使用java.awt.Robot
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上不可用。为此,我尝试导入从http://www.java2s.com/Code/Jar/j/Downloadjavartjarstubs150jar.htm下载的名为.p的.jar。
java-rt-jar-stubs-1.5.0.jar
但是当我在那行代码上运行应用程序
robot = new Robot();
我收到此异常
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)
所以我开始认为,即使我将jar作为应用程序的依赖项导入,也可能无法使用Java.awt.Robot。
从代码中可以看到,我需要从我的应用程序(尤其是从我的意图)开始,模拟键盘输入并在每个输入文本中进行书写。
所以我需要将文本发送到模拟键盘按键时集中输入。
有什么想法吗?
P.S .:我也尝试使用此
Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendKeyDownUpSync( KeyEvent.KEYCODE_B );
有权限
<permission android:name="android.permission.INJECT_EVENTS" />
但是很明显,它不能在第三方应用程序中使用,而只能在经过验证的Google Apps中使用,因为出现此异常
java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission