안드로이드 스마트 로봇 개발 정보
(글 수 131)
질문이 들어와서 공유하고자 아래에 남깁니다.
-----------------------------------------------------------------------
Smartrobot.activate 라는 메소드가 론쳐와의 연결을 해준다는 걸 보았습니다.
그래서 만약 론처가 device에 설치되어 있다면, 그리고 블루투스도 isEnabled라면
제가 만든 어플을 실행하자마자, 론처와 연결되어 바로 로봇에 전원이 들어오고 디바이스와 연결되는 기능을 구현하고 싶습니다.
그래서 저 메소드를 사용해 보려고 했으나, 콜백에 대한 이해가 부족해서 조금 어렵습니다.
말이 두서없어서 잘 이해하셨을지 모르겠지만, 혹시라도 예제나, 아니면 방법이 있으면 알려주시면 해서 메일드립니다.




"론처가 device에 설치되어 있다면..." --> 여기서 device는 스마트 폰을 말씀하시는 것이지요?
일단 로봇의 전원을 폰 쪽에서 켤 수는 없습니다. 하드웨어적인 전원이니까요.
로봇의 전원은 켜져 있다고 가정하구요.
SmartRobot.activate(..) 함수를 호출하면 론처와 연결되는 것은 맞습니다만 론처가 실행되어 있을 때의 얘기입니다.
론처가 실행되어 있지 않으면 연결되지 않습니다.
기본적으로 론처 외부에서 앱을 실행하는 것은 금지되어 있습니다.
사용자들은 론처 내에서 앱을 실행할테니까요.
방법은 앱에서 론처를 실행한 후에 SmartRobot.activate(...) 호출해서 연결하면 될텐데요
이것도 조만간 금지될 겁니다.
개발자들이 개발하는 앱을 보호해 주기 위해서, 즉 블랙 마켓을 차단하기 위해서
론처 내에서 정해진 마켓에서 내려 받은 앱만 실행되도록 할 겁니다.
따라서 론처 외부에 있는 앱으로는 로봇을 구동하지 못한다고 생각하시면 됩니다.
콜백은 그냥 SmartRobot.activate(...) 호출할 때 아규먼트로 넣어주면 되는데요 리스너와 같은 것입니다.
특별히 콜백이라고 한 이유는 반드시 등록해야 하고
콜백 함수 중 OnInitialized는 반드시 뭔가를 구현해야 하기 때문입니다.
SmartRobot.activate(...)에 콜백 넣어서 호출하면
상태에 따라 각각의 콜백 함수들이 호출될 것입니다.
자세한 건 레퍼런스를 참고하시구요.
현재 버전 1.3.0을 마무리 작업 중인데
SmartRobot.activate(...) 함수는 변함이 없고
액션과 클립 재생기 쪽은 함수가 좀 바뀔 것입니다.
교육을 하다 보니까 좀 헛갈려 하시는 것 같아서, 그리고 반드시 등록해야 하는 건 아니어서
콜백으로 되어 있던 것을 리스너로 변경하였습니다.
조만간 새로운 버전을 공식 배포할 것입니다.
참고로 레퍼런스 매뉴얼 중 네이티브 앱 쪽은 이미 레퍼런스를 여기에 맞춰 수정하였고
웹과 플래시 쪽은 아직 레퍼런스 매뉴얼을 수정하지 못했습니다.
튜토리얼도 예전 것 그대로구요.
조만간 알버트 로봇에 맞춰서 업데이트 될 것입니다.
(현재는 튜토리얼이 알파 로봇에 맞춰져 있음)