gpt4 book ai didi

Android shell 命令有奇怪的行为 ("input tap x y")

转载 作者:行者123 更新时间:2023-11-30 01:55:30 25 4
gpt4 key购买 nike

抱歉,这个问题可能很愚蠢,但我花了将近两天的时间试图找出问题所在。

我有这个示例代码,我通过调用 shell 命令“input tap 807 730”来模拟屏幕触摸。它有效。

public class DisableRequest extends Thread {
@Override
public void run() {
super.run();
StringBuffer output = new StringBuffer();

try {
Thread.sleep(3000);

Process p = Runtime.getRuntime().exec("input tap 807 730");
p.waitFor();

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";

while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
} catch (Exception e) {
Log.v("INPUT_TEST", "Error : " + e.toString());
}

String response = output.toString();
Log.v("INPUT_TEST", "Response : " + response);

}

}

我有两个案例。

1 ) 我在 onCreate() 中调用这段代码。在这种情况下,一切都很好。为了进行测试,我在整个屏幕上都有一个大按钮,我可以看到在命令后如何单击此按钮。

2 ) 我也在 onCreate() 中调用此代码,但之后我调用此代码打开对话框以请求设备管理员。

private void askForAdministrator() {
//Begin enabling device administrator
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
ComponentName deviceAdminComponentName = new ComponentName(this, MyAdminReceiver.class);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdminComponentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "You must enable device administration for certain features"
+ " of the app to function.");

//I thought that this would start the activity that lets the user
//choose whether to enable the app as a device admin
startActivityForResult(intent, ACTIVATION_REQUEST);
}

这是接下来发生的事情:

1) 对话框,它有两个按钮,打开。我知道数字 801 和 730 是按钮“激活”的坐标。当我单击该设备管理员对话框的“激活”按钮时,我通过在“开发人员选项”中启用“显示指针位置”获得了这些数字。

2) 延迟(2 秒)后,我可以在 logcat 中看到我的线程正常工作。

3) “激活”按钮没有得到任何触摸/点击。为什么?

所以我的问题是为什么?

但是,如果我像这样使用 ADB 调用输入命令

./adb shell input tap 807 730

然后“激活”按钮将被触摸。那么为什么我的线程命令不起作用。

最佳答案

您可以从应用程序中访问的 shell 是沙盒的。出于明显的安全原因,您不能将输入事件发送到系统对话框。您可以通过以 super 用户身份执行命令来在 Root设备上绕过此问题。

关于Android shell 命令有奇怪的行为 ("input tap x y"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com