私は Google の uiautomator についてかなりの経験があります。ただし、電話のホーム画面にウィジェットを追加することになると、私は困惑しているようです. ここでは単純にして、ウィジェットが追加される画面が空であると仮定します。考えられるプロセスは、アプリドロワーを開く>ウィジェットタブをクリックする>追加するウィジェットを見つける>ロングクリックしてウィジェットをホーム画面にドラッグすることです. ただし、ウィジェットは「長いクリック可能」ではないようです。任意の考え/提案/解決策をいただければ幸いです。私が実装したコードは以下のとおりです。
@Override
protected void setUp() throws UiObjectNotFoundException {
getUiDevice().pressHome();
new UiObject(new UiSelector().className(TEXT_VIEW).description("Apps")).clickAndWaitForNewWindow();
new UiObject(new UiSelector().className(TEXT_VIEW).text("Widgets")).click();
UiScrollable widgets = new UiScrollable(new UiSelector().scrollable(true));
widgets.setAsHorizontalList();
widgets.flingToEnd(MAX_SWIPES);
UiObject widget = widgets.getChildByText(
new UiSelector().className(TEXT_VIEW).resourceId("com.android.launcher:id/widget_name"),
WIDGET_NAME
);
// Returns true
System.out.println("exists(): " + widget.exists());
// Returns false...
System.out.println("longClickable(): " + widget.isLongClickable());
widget.longClick();
// Also tried...
int startX = sonosWidget.getVisibleBounds().centerX();
int startY = sonosWidget.getVisibleBounds().centerY();
getUiDevice().drag(startX, startY, 0, 0, 3);
}