본문 바로가기
----- IT -----/Appspresso

Appspresso(앱스프레소) - DeviceStatus (모바일기기 정보 확인)

by 대소니 2011. 8. 10.


다양한 사용환경이나 모바일 상태에 따라 다른 정보를 서비스해야 할때가 있습니다.
그러기 위해서는 현재 구동되고 있는 디바이스 정보가 필요할 텐데,
데모의 첫번째 예제가 기기 정보를 확인하는 방법에 대한 내용이네요.

먼저, 가장 첫 화면인 index.html를 보면,
아래와 같이 여러 css와 js로 구성 되어 있는것이 보입니다.
이중에서 기기정보 확인하는 것과 관련있어 보이는것이 devicestatus.js이겠네요.^^


그리고, body 시작 부분에, 로딩되면서 oninit()함수를 호출 하게 되어 있습니다.
이 함수가 어디에 정의되어 있을까하고 보던중에 index.js가 눈에 띄네요.


따라가 보니 역시 oninit()함수가 보입니다.
이벤트 리스너가 있고, 아래로 보니 device 페이지가 보여질때 getDevice를 호출하도록 되어 있군요.


자 이제, devicestatus.js를 열어보면,
위에서 본 getDevice()함수가 정의되어 있군요.
각각의 api를 호출하는 소스를 보면,
확인하고자 하는 기기정보에 대한 aspect와 property를 세번째 인수에 입력하고,
deviceapis.devicestatus를 이용하여 api를 호출하고, 정상적으로 처리시 device페이지의 class명을 찾아 값을 보여주도록 되어 있습니다. 



그럼 이제 화면인 devicestatus.html을 열어보자구요.
리스트로 다양한 기기 정보 항목이 구성되어 있고, 안드로이드에서의 지원여부와
아이폰에서의 지원여부가 하드코딩되어 있습니다.
그밑에 class 요넘부분에 기기 정보값이 보여지게 되겠습니다.


아이폰 시뮬레이터에서 실행하여 확인해봅니다.
와이파이를 지원하니 on으로 연결이 잘되어 있으니 connected로 나옵니다. 굳!



아하! 보신바와 같이 기기 정보 확인하는 핵심은 이거네요.

deviceapis.devicestatus.getPropertyValue( 

function (value) { $("#device .wifi-supported").html(value); },  

getDeviceErrorCallback, { aspect: "WiFiHardware", property : "status"}); 


그런데, 아직 베타버젼인지라 아이폰의 경우 많은 항목이 미지원상태로 되어 있습니다.
현재 가용한 항목중에 wifi 연결상태와 os 버젼 확인등은 앱 개발시에 유용하게 사용할 수 있을 것 같습니다.
개인적으로는 imei가 빨리 지원되었으면 합니다.

세부 지원항목과 aspect와 property는 앱스프레소 사이트에서 참고하세요.

댓글