phone_collect_list
Reads a scrolling list across multiple pages in one call, avoiding repeated scroll-and-read turns. Stops on a repeated page, an end label, or the page limit and returns deduplicated rows.
Instructions
Read a scrolling list across pages in ONE call instead of scroll + read turns: reads the rows of one kind (default Cell) on screen, swipes one page, reads again, and stops when the exposed page repeats (duplicate_page), end_label is on screen, or max_pages (default 6, max 10) is reached. Rows are deduplicated on (kind, identifier, label, value): different exposed identifiers preserve identical-looking rows. Absent or reused identifiers with identical content may still collapse, so reconcile counts the user cares about. complete is true ONLY when end_label was seen (complete_scope=end_label_visibility); business_complete is always false. duplicate_page is not proof the list ended. Changed pages continue even with no new deduplicated rows. Only what the accessibility tree exposes is collected. It swipes the live list, so the screen is left where the last page was; snapshot is that last page. Optional snapshot (from a read of the target app; never filled in for you): a known foreground app mismatch refuses before any swipe (app_changed; setup may already have affected the device). Results name the app. Owner/privacy changes stop further reads and scrolling. swipes_confirmed counts Native ACKs, swipes_uncertain may have reached the device; never replay uncertain scrolling. Requires phone_status drivable=true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Only rows whose centre lies in this normalized `[x, y, w, h]` area, and swipes inside it (default: the whole screen). | |
| instance | No | Installed local instance name, such as i13 or default. Omit to use the configured daemon. No fallback on failure. | |
| row_kind | No | Element kind of one list row (default `Cell`; e.g. `StaticText`, `Button`, `Link`). A row without a label is named by its texts. | |
| snapshot | No | A snapshot from an earlier read of the target app: when given, a different foreground app refuses before any swipe. Not filled in for you. | |
| direction | No | `down` (default) reveals rows below, `up` rows above. | |
| end_label | No | Exact label that marks the end of the list ("没有更多了", "No more results"). Only this makes the result `complete:true`. | |
| max_pages | No | Pages to read, 1–10 (default 6). One swipe between pages. |