我正在尝试使用此代码在 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下载的.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。
正如您从代码中看到的那样,我需要从我的应用程序(特别是我的意图)中模拟键盘输入并写入每个输入文本。
所以我需要将文本发送到以模拟键盘按下为重点的输入。
有任何想法吗?
PS:我也试过用这个
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