Location

디바이스 위치 정보를 Play 로 전달하기 위한 규격

Version

최신 버전은 1.0 입니다.

Version Date Description
1.0 2019.12.04 규격 추가

SDK Interface

LocationAgent 사용

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

Linux 는 LocationAgent 를 지원하지 않습니다.

  • Android
  • iOS

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

복사성공!
1
val locationAgent = nuguAndroidClient.getAgent(LocationAgent.NAMESPACE)

NuguClient instance 를 통해 LocationAgent instance 에 접근할 수 있습니다.

복사성공!
1
let locationAgent = nuguClient.locationAgent

Context 구성

Play 에서 위치 정보 기반의 정보를 제공 받기 위해서는 디바이스의 위치 정보를 Context 에 포함시켜 주어야 합니다.

  • Android
  • iOS

LocationProvider 를 추가합니다.

복사성공!
1
2
3
4
5
6
7
val provider = object: LocationProvider {
    override fun getLocation(): Location? {
        ...
    }
}
NuguAndroidClient.Builder(...)
    .enableLocation(provider)

LocationAgentDelegate 를 추가합니다.

복사성공!
1
2
3
4
5
6
class MyLocationAgentDelegate: LocationAgentDelegate {
    func locationAgentRequestLocationInfo() -> LocationInfo? {
        ...
    }
}
locationAgent.delegate = MyLocationAgentDelegate()

Context

복사성공!
1
2
3
4
5
6
7
8
9
{
  "Location": {
    "version": "1.0",
    "current": {
      "latitude": "{{STRING}}",
      "longitude": "{{STRING}}"
    }
  }
}
parameter type mandatory description
current object N 현재 위치의 정보
current.latitude string Y 위도
current.longitude string Y 경도