uiautomator上的Android push shell命令

问题描述 投票:0回答:1

我试图使用uiautomation来推送我的设备中的mp3,所以我使用这段代码:

mDevice.executeShellCommand("push music\\testing.mp3 /sdcard/Music");

但是在我跑完之后,什么也没发生,我的代码有问题吗?

android adb ui-automation
1个回答
1
投票

executeShellCommand在您正在自动化的设备中执行命令。这是UiAutomator相当于“adb shell <command>”。但是,要将文件推送到此类设备,您应该在本地计算机(文件所在位置)中执行该文件,因为设备对此一无所知。

自动化框架,如Appium already provide a simple function用于推送文件,但我找不到任何类似的低级别UiAutomator。您最简单的选择是手动调用adb push:

ProcessBuilder pb = new ProcessBuilder("adb", "-s", "DEVICE_UDID", "push", "music\\testing.mp3", "/sdcard/Music");
Process pc = pb.start();
pc.waitFor();

(source)

确保将DEVICE_UDID替换为您设备的标识符(如adb设备中所示)。或者,如果只有一台设备连接到您的计算机,您可以从命令中删除"-s", "DEVICE_UDID",它将假设您连接的设备作为您的命令的目标。

© www.soinside.com 2019 - 2024. All rights reserved.