# Lấy danh sách ứng dụng APP

Liệt kê các ứng dụng có thể cài lên cloud phone.
- **Tác động**: không có. Chỉ đọc. An toàn khi thử lại với thời gian chờ tăng dần có giới hạn. Không có cloud phone nào tham gia, nên máy không cần đang chạy.
- **Nội dung**: danh mục ứng dụng công khai, tức là các ứng dụng khả dụng toàn cầu cộng với các ứng dụng được phát hành cho nhóm của bạn. Mỗi mục mang các phiên bản của nó trong `appVersionList`, mới nhất trước; lấy `appVersionList[].id` làm `appVersionId` cho `/cloudphone/app/install`.
- **Lưu ý về phân trang**: kết quả được sắp xếp lại sau khi trang đã được lấy, nên thứ tự chỉ ổn định trong phạm vi một trang và `total` phản ánh trang hiện tại chứ không phải toàn bộ danh mục. Dùng `pages` để điều hướng.

Endpoint: POST /api/cloudphone/app/page
Version: 2026-09-05

## Request fields (application/json):

  - `appName` (string)
    Tên ứng dụng (khớp một phần)

  - `pageNum` (integer)
    Số trang; mặc định: 1

  - `pageSize` (integer)
    Số mục mỗi trang; mặc định: 10

## Response 200:

  - `200` (unknown)
    Thành công. `data.dataList` chứa các ứng dụng khả dụng cho nhóm của bạn ở trang được yêu cầu; mỗi ứng dụng mang các phiên bản trong `appVersionList`, mới nhất trước. `data.total` là số bản ghi của trang hiện tại, không phải tổng số — hãy dùng `data.pages` để phân trang.

## Response 200 fields (application/json):

  - `code` (integer)

  - `msg` (string | null)

  - `data` (object)

  - `data.total` (string)
    Số bản ghi ở trang hiện tại

  - `data.current` (string)
    Số trang hiện tại

  - `data.pages` (string)
    Tổng số trang

  - `data.dataList` (array)

  - `data.dataList.id` (string)
    ID ứng dụng. Đây không phải giá trị mà `/cloudphone/app/install` cần.

  - `data.dataList.appName` (string)
    Tên ứng dụng

  - `data.dataList.appIcon` (string)
    URL biểu tượng ứng dụng

  - `data.dataList.packageName` (string)
    Tên gói Android

  - `data.dataList.categoryValue` (integer)
    ID danh mục

  - `data.dataList.sortNo` (integer)
    Thứ tự sắp xếp trong thư viện ứng dụng

  - `data.dataList.appVersionList` (array)
    Các phiên bản của ứng dụng, sắp xếp theo `versionCode` giảm dần (mới nhất trước)

  - `data.dataList.appVersionList.id` (string)
    ID phiên bản ứng dụng. Truyền giá trị này làm `appVersionId` cho `/cloudphone/app/install`.

  - `data.dataList.appVersionList.versionCode` (string)
    Mã phiên bản

  - `data.dataList.appVersionList.versionName` (string)
    Tên phiên bản hiển thị

  - `data.dataList.appVersionList.installStatus` (integer | null)
    Luôn là null với thao tác này. Hãy truy vấn trạng thái cài đặt bằng `/cloudphone/app/installedList`.

  - `data.dataList.appVersionList.packageName` (string | null)
    Luôn là null với thao tác này; hãy đọc `packageName` ở cấp ứng dụng.

  - `requestId` (string)

