下面列出了怎么用android.app.UiAutomation.AccessibilityEventFilter的API类实例代码及写法,或者点击链接到github查看源代码。
public String waitToast(final String pkg, final long timeout) {
final StringBuffer result = new StringBuffer();
final Runnable emptyRunnable = new Runnable() {
@Override
public void run() {
}
};
final UiAutomation.AccessibilityEventFilter checkWindowUpdate = (UiAutomation.AccessibilityEventFilter) new UiAutomation.AccessibilityEventFilter() {
public boolean accept(final AccessibilityEvent event) {
if (event.getEventType() == 64) {
final String sourcePackageName = (String) event
.getPackageName();
if (sourcePackageName.equals(pkg)) {
final Parcelable parcelable = event.getParcelableData();
if (!(parcelable instanceof Notification)) {
final String toastMsg = (String) event.getText()
.get(0);
if (toastMsg != null) {
result.append(toastMsg);
}
return true;
}
}
}
return false;
}
};
try {
this.getAutomatorBridge()
.executeCommandAndWaitForAccessibilityEvent(emptyRunnable,
checkWindowUpdate, timeout);
} catch (TimeoutException ex) {
} catch (Exception ex2) {
}
return result.toString();
}
public AccessibilityEvent executeCommandAndWaitForAccessibilityEvent(Runnable command,
AccessibilityEventFilter filter, long timeoutMillis) throws TimeoutException {
return mUiAutomation.executeAndWaitForEvent(command,
filter, timeoutMillis);
}
public AccessibilityEvent executeCommandAndWaitForAccessibilityEvent(
Runnable command, AccessibilityEventFilter filter,
long timeoutMillis) throws TimeoutException {
return mUiAutomation.executeAndWaitForEvent(command, filter,
timeoutMillis);
}