在Android应用服务上使用java.awt.robot

时间:2018-12-12 10:19:27

标签: android android-6.0.1-marshmallow

我正在尝试通过此代码在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

0 个答案:

没有答案