Справочник API

Приложение

Получайте информацию об устройстве и приложении, устанавливайте буфер обмена, перезапускайте приложение и управляйте настройками уровня устройства. Мутации избранных папок задокументированы в разделе Files.

Определения типов

bash
type App {
  usbConnected: Boolean!
  urlToken: String!              # current session token
  httpPort: Int!
  httpsPort: Int!
  appDir: String!
  deviceName: String!
  battery: Int!                  # battery level 0–100
  appVersion: Int!               # versionCode
  osVersion: Int!                # Android SDK level e.g. 35
  channel: String!               # "github" | "google"
  permissions: [String!]!        # granted API permissions
  audios: [PlaylistAudio!]!      # current playlist
  audioMode: MediaPlayMode!      # REPEAT | REPEAT_ONE | SHUFFLE
  audioCurrent: String!          # path of the playing track
  sdcardPath: String!
  usbDiskPaths: [String!]!
  internalStoragePath: String!
  downloadsDir: String!
  developerMode: Boolean!
  favoriteFolders: [FavoriteFolder!]!
}

type FavoriteFolder {
  rootPath: String!
  fullPath: String!
  alias: String              # optional display alias, nullable
}

type TempValue {
  key: String!
  value: String!
}

type DeviceInfo {
  # Hardware + OS info: manufacturer, model, sdkInt, buildChannel, etc.
  # Fields are platform-dependent; see PlainApp source for the full list.
}

type Battery {
  level: Int!                # 0–100
  status: BatteryStatus!     # CHARGING | DISCHARGING | FULL | NOT_CHARGING
  health: BatteryHealth!
  plugged: BatteryPlugged!
  temperature: Int!          # tenths of a degree Celsius
  voltage: Int!              # millivolts
}

enum BatteryStatus   { CHARGING DISCHARGING FULL NOT_CHARGING UNKNOWN }
enum BatteryHealth   { GOOD OVERHEAT DEAD OVER_VOLTAGE UNSPECIFIED_FAILURE UNKNOWN COLD }
enum BatteryPlugged  { AC USB WIRELESS NONE }

Операции

query

app

Получите все состояние устройства и приложения в одном запросе.

bash
query GetApp {
  app {
    usbConnected urlToken httpPort httpsPort appDir deviceName
    battery appVersion osVersion channel permissions
    audios { title path duration } audioMode audioCurrent
    sdcardPath usbDiskPaths internalStoragePath downloadsDir developerMode
    favoriteFolders { rootPath fullPath alias }
  }
}
query

deviceInfo

Получите информацию о железе и ОС (производитель, модель, уровень SDK и т.д.).

bash
query GetDeviceInfo {
  deviceInfo { manufacturer model sdkInt buildChannel }
}
query

battery

Получите текущий уровень заряда батареи, статус зарядки, состояние и напряжение.

bash
query GetBattery {
  battery { level status health plugged temperature voltage }
}
mutation

setTempValue

Установите временную пару ключ/значение в памяти сервера. Очищается при перезапуске HTTP-сервера.

bash
mutation SetTempValue($key: String!, $value: String!) {
  setTempValue(key: $key, value: $value) { key value }
}
mutation

relaunchApp

Перезапустите процесс PlainApp на устройстве.

bash
mutation RelaunchApp {
  relaunchApp
}
mutation

openAccessibilitySettings

Откройте экран настроек Android Accessibility на устройстве. Требуется перед тем, как sendScreenMirrorControl сможет отправлять жесты.

bash
mutation OpenAccessibilitySettings {
  openAccessibilitySettings
}
mutation

openWebSettings

Откройте экран настроек веб-интерфейса PlainApp на устройстве (пароль, 2FA и т.д.).

bash
mutation OpenWebSettings {
  openWebSettings
}
mutation

setClip

Установите буфер обмена устройства в заданный текст.

bash
mutation SetClip($text: String!) {
  setClip(text: $text)
}
mutation

updateDeviceName

Измените отображаемое имя устройства, показываемое в веб-интерфейсе и транслируемое связанным peer'ам.

bash
mutation UpdateDeviceName($name: String!) {
  updateDeviceName(name: $name)
}