我正在尝试通过uiautomator访问“快速设置”中的一项。我可以通过device.openQuickSettings();打开快速设置。此后,我无法进入某个特定项目,例如WiFi /飞行模式。某些机构可以帮助我在此快速设置中选择一个项目吗?
我尝试了以下内容
if (new UiObject(new UiSelector().text("BRIGHTNESS")).exists())
{
new UiObject(new UiSelector().text("BRIGHTNESS")).click();
}
和
if (new UiObject(new uiSelector().className("android.widget.GridView").description("AEROPLANE MODE")).exists())
{
new UiObject(new UiSelector().className("android.widget.GridView").description("AEROPLANE MODE")).click();
}
但是没有成功..
谢谢
我将使用以下内容访问这些项目
UiScrollable scroll = new UiScrollable(new UiSelector().scrollable(true));
UiObject airplane = scroll.getChildByText(new UiSelector().className(android.widget.TextView.class.getName()), "Aeroplane mode");
但是,有人可以帮我如何在此快速设置菜单中设置在飞机模式下的uiautomator中进行决定吗?
您是否从uiautomatorviewer中获得了这些文本-亮度,飞机模式?
在我的Nexus 4设备上检查uiautomatorviewer的屏幕截图-
这里清楚地显示了“亮度”而不是“亮度”,因此应像这样使用:
new UiObject(new UiSelector().text("Brightness")).click();
同样适用于“飞机模式”-
new UiObject(new UiSelector().text("Airplane mode")).click();
支票-您可以做一件事-
注意,当“飞行模式”为开-> wifi显示为“ WI-FI关”,而当“飞行模式”为关-> wifi仅显示“ WI-FI'
所以您可以这样做-
//put airplane mode ON
new UiObject(new UiSelector().text("Airplane mode")).click();
//add some delay
sleep(3000); //3sec delay
//check for wifi text
if(new UiObject(new UiSelector().text("Wi-Fi Off")).exists()) {
System.out.println("Airplane Mode ON");
} else {
System.out.println("Airplane Mode OFF");
}
与您可以检查何时关闭飞行模式相同。
[这是我在运行Android 7.0的Galaxy S8上在Kotlin中进行的操作。
uiautomatorviewer
在快速设置中找到飞行模式元素的属性content-desc
元素的Airplane,mode,Off.,Button
值private val testApp = UiDevice.getInstance(getInstrumentation())
private fun enableAirplaneMode() = apply {
testApp.uiDevice.openQuickSettings()
testApp.uiDevice.waitForIdle()
var airplaneModeIcon = checkNotNull(testApp.uiDevice.findObject(By.desc("Airplane,mode,Off.,Button")))
airplaneModeIcon.click()
}
private val testApp = UiDevice.getInstance(getInstrumentation())
private fun disableAirplaneMode() = apply {
testApp.uiDevice.openQuickSettings()
testApp.uiDevice.waitForIdle()
var airplaneModeIcon = checkNotNull(testApp.uiDevice.findObject(By.desc("Airplane,mode,On.,Button")))
airplaneModeIcon.click()
}