webOS Article/2. Luna Service 활용하기

Luna Service API란 무엇인가?

하이하정 2021. 7. 24. 11:56

 

 

API


1. API란?

API란 Application Programing Interface의 약어로 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 입니다.

예) USB가 꽂혔을 때 팝업 등이 미리 구현되어 있다.

 

저희는 그중에서 webOS OSE 플랫폼의 서비스들이 제공하는 API인 Luna Service API에 대해 알아보겠습니다.

 

2. API 예시

 

 

 

Luna Service API


1. Luna Service API란?

webOS가 가지고 있는 Components로 notification, AI 등이 있습니다.

지금부터 Luna Service API를 사용하기 위해 어떤 종류가 있는지, 어떻게 구성되어 있는지에 대해 알아보겠습니다.

 

2. Luna Service API 종류

Service URI 설명 Methods
com.webos.appInstallService 애플리케이션 설치 요청을 수행하고 설치 중인 애플리케이션 정보를 제공 Install, Remove, status
com.webos.bootManager 부팅 상태/모드를 모니터링하고 제어 generateSignal, getBootStatus
com.webos.media webOS 미디어 서버에서 제공하는 기능에 대한 엑세스를 제공. 앱에서는 이 API를 직접 사용하는 것보다 애플리케이션 프레임워크(web, QT, S이)가 기본 제공하는 미디어 인터페이스를 사용 load, unload, notifyForeground, notifyBackground, subscribe, attach, play, pause, seek, registerPipeline 등
com.webos.notification
시스템 알림 관리 closeAlert, closeToast, createAlert, createToast
com.webos.service.ai.voice 음성 입력을 인식 start, getState, getResponse, stop
com.webos.service.alarm webOS 데몬 또는 앱이 지정된 시간 간격에 특정 매개변수를 사용하여 webOS API를 호출 set, clear
com.webos.service.audio webOS 시스템의 오디오 정책을 제어 media/setVolume, systemsounds/playFeedback, udev/event, UMI/connect, UMI/disconnect, UMI/getStatus, UMI/mute, master/getVolume 등
com.webos.service.db 앱에서 영구적인 데이터를 저장 batch, compact, del, delKInd, dump, find, get, getProfile, load, merge, mergePut, profile, pruge, purgeStatus, put 등

 

더 많은 종류들은 https://www.webosose.org/docs/reference/ls2-api/ls2-api-index/ 에서 확인하실 수 있습니다.

 

 

 

Luna Service API 사용하기


1. Luna Service API의 구성

  • Service URL : Service URL 이란 Luna Bus를 통해 각 플랫폼 서비스를 엑세스 할 수 있도록 하는 고유한 주소입니다.
    luna : // <Serivce name>​
  • Method name : Service 중에서 사용하는 Method를 정하여 Method name을 Service name 뒤에 작성하여 사용하는 주소입니다.
    luna://<Serivce name>>/<Method name>​
  • Parameter :  Parameter는 Service 요구옵션이며 JSON 객체로 전달됩니다.
    luna://<Serivce name>>/<Method name>/<Parameter name>


  • Call Response : Method call에 대한 Service call data를 포함하는 JSON 객체입니다. returnValue의 값에 따라서Success or Failure Callback인지를 나타내는 속성이 있습니다.

    -returnValue의 값이 true 일 때 : 호출은 성공하고 response object에 추가적인 속성을 만들어 질 수 있습니다. 
    -returnValue의 값이 false 일 때 :  호출의 실패를 의미하고 response object에 대한 오류를 나타냅니다.

 

  • Subscription Response : Subscription Response는 subscribed에 대한 Service Response에 대한  Response data를 포함하는 JSON 객체입니다.

 

2. permission

Luna Service API를 사용하기 위해 appinfo.json파일의 "requiredPermissions"를 추가해야합니다.

 

  • Target Device에 접속하기
> ares-shell -d <Target Device>

ares-shell 명령어를 사용하여 기기에 접속합니다.

 

저희는 cosmos라는 타겟디바이스에 접속했습니다.

 

  • 추가할 Permission 확인하기
# ls-monitor -i com.webos.notification

저희는 notification을 사용할 것이기 때문에 com.webos.notification을 입력한 후 permission을 확인했습니다.

 

저희는 notification중에서도 createToast를 사용할 것이기 때문에 "notification.operation"을 추가해주어야합니다.

 

  • requirePermissions에 권한 추가하기

appinfo.json파일에 requirePermissions가 있습니다. 위에서 확인한 권한들을 추가해줍니다.

 

  • App 실행하기

이후 패키징하여 설치한 후 실행을 하면 Luna Service API가 정상적으로 동작합니다.

 

패키징 및 설치하는 CLI명령어는 다음 포스팅을 참고해주시길 바랍니다.

webOS 개발시작하기1 : CLI 사용하기 : https://webos-supporters.tistory.com/14

 

hi라는 버튼을 클릭하면 hello world라는 toast알림이 뜨도록 코드를 작성해보았습니다.

Luna Service API를 사용하는 자세한 방법에 대해서는 다음 포스팅에서 다루도록 하겠습니다.