android - que - ¿Cómo detectar la notificación de headsup en uiautomator?
notificaciones heads up whatsapp (1)
Estoy trabajando con los dispositivos Nexus 5 y Cyanogen One plus con el sistema operativo Android Lollipop. Estoy intentando probar varias notificaciones de determinada aplicación. Pude probar la notificación de la bandeja y la notificación de la pantalla de bloqueo con UiAutomator, pero no puedo tener éxito con la notificación de "heads-up". Intenté seguir el código pero no lo pude detectar.
public void test_HeadsupTitle() throws InterruptedException, UiObjectNotFoundException, IOException
{
//some code to bring up headsup notification
UiObject maxHeadsUp = new UiObject(new UiSelector().packageName("com.android.systemui").resourceId("android:id/status_bar_latest_event_content"));
// code to add sleep so that it waits for heads up notification to show up
assertTrue(maxHeadsUp.exists());
}
¿Hay alguna manera de detectar las notificaciones directas en UiAutomator como un objeto que se debe buscar al ejecutar la automatización?
@Before
public void setUp() throws Exception
{
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
}
@Test
public void testNoti() throws UiObjectNotFoundException
{
mDevice.openNotification();
mDevice.wait(Until.hasObject(By.pkg("com.android.systemui")), 10000);
/*
* access Notification Center through resource id, package name, class name.
* if you want to check resource id, package name or class name of the specific view
* in the screen, run ''uiautomatorviewer'' from command.
*/
UiSelector notificationStackScroller = new UiSelector()
.packageName("com.android.systemui")
.className("android.view.ViewGroup")
.resourceId("com.android.systemui:id/notification_stack_scroller");
UiObject notificationStackScrollerUiObject = mDevice.findObject(notificationStackScroller);
assertTrue(notificationStackScrollerUiObject.exists());
/*
* access top notification in the center through parent
*/
UiObject notiSelectorUiObject = notificationStackScrollerUiObject.getChild(new UiSelector().index(0));
assertTrue(notiSelectorUiObject.exists());
notiSelectorUiObject.click();
}