론처에 넣기

개발된 하이브리드 앱을 스마트 로봇 론처에 넣는 방법을 설명한다.

01. 스마트 로봇 론처에 넣기

개발된 애플리케이션의 AndroidManifest.xml 파일을 열면 그림 1과 같이 액티비티의 인텐트 필터에 카테고리가 있다.

그림 1. 매니페스트 파일

인텐트 필터의 카테고리를 그림 2와 같이 kr.robomation.physical.albert로 변경한다.

그림 2. 카테고리 변경

스마트 로봇 론처를 실행하고 알버트 로봇과 연결한 후, 개발된 애플리케이션을 스마트 폰에 설치하면 그림 3과 같이 개발된 애플리케이션이 스마트 로봇 론처에 포함되어 있음을 확인할 수 있다.

그림 3. 스마트 로봇 론처에 포함된 애플리케이션

알버트 로봇용으로 개발된 애플리케이션은 이와 같이 카테고리에 kr.robomation.physical.albert를 입력하면 되고, 알파 로봇용으로 개발된 애플리케이션의 경우에는 카테고리에 kr.robomation.physical.alpha를 입력하면 된다.

그림 2에서 입력한 kr.robomation.physical.albert는 알버트 로봇의 ID인 Albert.ID와 같고, kr.robomation.physical.alpha는 알파 로봇의 ID인 Alpha.ID와 같다.

02. 폴더 자동 생성하기

스마트 로봇 론처에는 애플리케이션이 설치될 때 폴더가 자동으로 생성되는 기능이 있다. 그림 4와 같이 AndroidManifest.xml 파일에서 액티비티의 인텐트 필터 아래에 그룹 ID와 그룹 이름을 메타 데이터로 등록하도록 하자.

그림 4. 그룹 ID 및 그룹 이름 등록

roboid.group.id는 각각의 폴더를 구분하기 위한 ID이고, roboid.group.name은 폴더의 이름을 나타낸다. 여기서는 폴더의 이름을 스트링 리소스로 설정하였기 때문에 그림 5와 같이 res 폴더의 values 폴더에 있는 strings.xml 파일에 스트링 리소스를 설정해 주어야 한다.

그림 5. 스트링 리소스 설정

애플리케이션이 설치될 때 roboid.group.id, 즉 이 예제에서는 www.sample.com에 해당하는 폴더가 존재하지 않는 경우에는 roboid.group.name에서 설정한 이름을 폴더 이름으로 하여 새로운 폴더를 생성하고, 그 폴더 안에 애플리케이션이 포함된다. 애플리케이션이 설치될 때 roboid.group.id, 즉 이 예제에서는 www.sample.com에 해당하는 폴더가 이미 존재하는 경우에는 폴더를 새로 생성하지 않고 해당 폴더에 애플리케이션이 포함된다.

스마트 로봇 론처를 실행하고 개발된 애플리케이션을 스마트 폰에 설치하면 그림 6과 같이 지정한 폴더에 애플리케이션이 포함되어 있음을 확인할 수 있다. AndroidManifest.xml 파일에서 roboid.group.id와 roboid.group.name을 설정하지 않으면 그림 3과 같이 스마트 로봇 론처의 바탕화면에 표시된다.

그림 6. 폴더에 포함된 애플리케이션

03. 폴더 제한 사항

폴더의 ID, 즉 AndroidManifest.xml 파일에서 roboid.group.id에 설정할 수 있는 ID 문자열은 한 업체당 하나로 제한된다. 너무 많은 폴더가 생성되면 사용자의 혼란을 야기하기 때문이다. 개인적으로 하나의 애플리케이션만 배포하는 경우에는 roboid.group.id를 설정하지 말고 바탕화면에 표시되도록 하자. 또한, 각 업체별로 설정하는 폴더의 ID는 추후 변경할 수 없으므로 신중하게 선택하도록 하고, 자신만이 사용하는 유일한 문자열로 설정하여야 한다. 보유하고 있는 URL 주소를 폴더의 ID로 설정하는 것도 좋은 방법이다.

스마트 로봇 론처에는 미리 지정된 폴더 ID가 있다. 현재는 3가지가 있으며, AndroidManifest.xml 파일에서 roboid.group.id에 설정하면 된다. roboid.group.name은 설정하지 않아도 되며, roboid.group.name을 설정하더라도 무시된다. 미리 지정된 폴더 ID는 누구나 사용할 수 있다.

폴더 ID 폴더 이름 설명
org.smartrobot.folder.book 책을 사용하는 애플리케이션들을 포함하는 폴더
org.smartrobot.folder.card 카드놀이 카드를 사용하는 애플리케이션들을 포함하는 폴더
org.smartrobot.folder.board 보드놀이 보드를 사용하는 애플리케이션들을 포함하는 폴더