Screen

디바이스의 디스플레이를 제어하기 위한 규격

Version

최신 버전은 1.0 입니다.

Version Date Description
1.0 2020.03.02 규격 추가

SDK Interface

ScreenAgent 사용

Screen interface 규격에 따른 디바이스의 동작 제어는 ScreenAgent 가 처리합니다.

iOS/Linux 는 ScreenAgent 를 지원하지 않습니다.

  • Android

NuguAndroidClient instance 를 통해 ScreenAgent instance 에 접근할 수 있습니다.

복사성공!
1
val screenAgent = nuguAndroidClient.getAgent(DefaultScreenAgent.NAMESPACE)

NuguAndroidClient 생성시 Screen 을 추가합니다.

복사성공!
1
2
3
4
5
class MyScreen: Screen {
    ...
}
NuguAndroidClient.Builder(...)
    .enableScreen(MyScreen())

Context 구성

디바이스의 디스플레이 상태를 Context 에 포함시켜 주어야 합니다.

  • Android

Screen 을 구현합니다.

복사성공!
1
2
3
4
5
6
class MyScreen: Screen {
    override fun getSettings(): Settings {
        ...
    }
    ...
}

디스플레이 제어

디바이스의 디스플레이 제어가 TurnOn/TurnOff/SetBrightness directive 로 요청될 수 있습니다.

  • Android

Screen 을 구현합니다.

복사성공!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MyScreen: Screen {
    override fun turnOn(brightness: Long): Boolean {
        ...
    }

    override fun turnOff(): Boolean {
        ...
    }

    override fun setBrightness(brightness: Long): Boolean {
        ...
    }

    ...
}

Context

복사성공!
1
2
3
4
5
6
7
{
  "Screen": {
    "version": "1.0",
    "state": "{{STRING}}",
    "brightness": {{LONG}}
  }
}
parameter type mandatory description
state enum Y ON, OFF
brightness long Y 0 ~ 100

Directive

TurnOn

복사성공!
1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "header": {
    "namespace": "Screen",
    "name": "TurnOn",
    "messageId": "{{STRING}}",
    "dialogRequestId": "{{STRING}}",
    "version": "1.0"
  },
  "payload": {
    "playServiceId": "{{STRING}}",
    "brightness": {{LONG}}
  }
}
parameter type mandatory description
brightness long Y 1 ~ 100

TurnOff

복사성공!
1
2
3
4
5
6
7
8
9
10
11
12
{
  "header": {
    "namespace": "Screen",
    "name": "TurnOff",
    "messageId": "{{STRING}}",
    "dialogRequestId": "{{STRING}}",
    "version": "1.0"
  },
  "payload": {
    "playServiceId": "{{STRING}}"
  }
}

SetBrightness

복사성공!
1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "header": {
    "namespace": "Screen",
    "name": "SetBrightness",
    "messageId": "{{STRING}}",
    "dialogRequestId": "{{STRING}}",
    "version": "1.0"
  },
  "payload": {
    "playServiceId": "{{STRING}}",
    "brightness": {{LONG}}
  }
}
parameter type mandatory description
brightness long Y 1 ~ 100