son que notificaciones notificacion las heads flotantes cuáles android notifications android-notifications uiautomator heads-up-notifications

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(); }