UiController
public
interface
UiController
androidx.test.espresso.UiController
|
Known Indirect Subclasses
|
Provides base-level UI operations (such as injection of MotionEvent
s) that can be used to
build user actions such as clicks, scrolls, swipes, etc. This replaces parts of the android
Instrumentation class that provides similar functionality. However, it provides a more advanced
synchronization mechanism for test actions. The key differentiators are:
- test actions are assumed to be called on the main thread
- after a test action is initiated, execution blocks until all messages in the main message
queue have been cleared.
Summary
Public methods
injectKeyEvent
boolean injectKeyEvent (KeyEvent event)
Injects a key event into the application.
Parameters |
event |
KeyEvent : the (non-null!) event to inject |
Returns |
boolean |
true if the event was injected, false otherwise |
injectMotionEvent
boolean injectMotionEvent (MotionEvent event)
Injects a motion event into the application.
Parameters |
event |
MotionEvent : the (non-null!) event to inject |
Returns |
boolean |
true if the event was injected, false otherwise |
Throws |
InjectEventSecurityException |
if the event couldn't be injected because it would
interact with another application. @Deprecated Please use injectMotionEventSequence this
method will be removed in future.
|
injectMotionEventSequence
boolean injectMotionEventSequence (Iterable<MotionEvent> events)
Parameters |
events |
Iterable |
injectString
boolean injectString (String str)
Types a string into the application using series of KeyEvent
s. It is up to the
implementor to decide how to map the string to KeyEvent
objects. If you need specific
control over the key events generated use injectKeyEvent(KeyEvent)
.
Parameters |
str |
String : the (non-null!) string to type |
Returns |
boolean |
true if the string was injected, false otherwise |
loopMainThreadForAtLeast
void loopMainThreadForAtLeast (long millisDelay)
Loops the main thread for a specified period of time.
Control may not return immediately, instead it'll return after the provided delay has passed
and the queue is in an idle state again.
Parameters |
millisDelay |
long : time to spend in looping the main thread
|
loopMainThreadUntilIdle
void loopMainThreadUntilIdle ()
Loops the main thread until the application goes idle.
An empty task is immediately inserted into the task queue to ensure that if we're idle at
this moment we'll return instantly.