0

我正在尝试使用此代码在 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
4

0 回答 0