我尝试使用 uiautomation 在我的设备中推送 mp3,所以我使用以下代码:
mDevice.executeShellCommand("push music\testing.mp3 /sdcard/Music");
但是我运行后,什么也没发生,我的代码有问题吗?
executeShellCommand 在你正在自动化的设备中执行命令。它是"adb shell <command>
"的UiAutomator等价物。但是,要将文件推送到此类设备,您应该在本地计算机(文件所在的位置(中执行它,因为设备对此一无所知。
像Appium这样的自动化框架已经提供了一个简单的功能来推送文件,但我找不到类似的东西来做低级UiAutomator。最简单的选择是手动调用 adb 推送:
ProcessBuilder pb = new ProcessBuilder("adb", "-s", "DEVICE_UDID", "push", "music\testing.mp3", "/sdcard/Music");
Process pc = pb.start();
pc.waitFor();
(来源(
请务必将DEVICE_UDID
替换为设备的标识符(如 adb 设备中所示(。或者,如果只有一个设备连接到您的计算机,您可以从命令中删除"-s", "DEVICE_UDID"
,它将假定您连接的设备作为命令的目标。