본문 바로가기
IT·전자기기/구글 안드로이드, 갤럭시

안드로이드에서 적외선 통신하는 앱 만들기

by 공학코드 2015. 12. 9.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

 

 

 

 에어컨과 TV 등을 제어하는 방법 중 일반적인 것은 적외선으로 제어하는 방법이다. 이걸 안드로이드앱으로 개발하기 위해서는 안드로이드폰에 적외선송신기가 있어야 하며 해당 제조사가 제공하는 SDK를 활용해서 구현해야한다. 킷캣 4.4 부터는 제조사에 관계 없이 ConsumerIrManager라는 클래스로 적외선 송신을 구현할 수 있다. 하지만 적외선 송신기가 달려있음에도 ConsumerIrManager클래스 또는 제조사SDK로 적외선 송신 구현이 불가능한 경우가 있으며 대표적인 사례로 지프로가 있다. 아래의 소스를 지프로에서 돌리면 hasIrEmitter() 함수에서 적외선 송신기가 없다는 false가 반환된다. 지프로는 제조사SDK를 활용해도 LG Qremote RawIR가 지원되지 않기 때문에 적외선 앱을 개발할 수 없다. 아래의 소스코드를 G2에서 돌리면 잘 된다.



public void send() { consumerIrManager = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE); if(consumerIrManager == null){ Toast.makeText(MainActivity.this, "이 휴대폰은 사용할 수 없습니다.", Toast.LENGTH_SHORT).show(); Log.d(TAG, "서비스를 정상적으로 가져오지지 못함"); return; } if(!consumerIrManager.hasIrEmitter()){ Toast.makeText(MainActivity.this, "이 휴대폰은 적외선 송신기가 없습니다.", Toast.LENGTH_SHORT).show(); Log.e(TAG, "적외선 송신기 없음"); return; } if (Build.VERSION.SDK_INT == 19) { int lastIdx = Build.VERSION.RELEASE.lastIndexOf("."); int VERSION_MR = Integer.valueOf(Build.VERSION.RELEASE.substring(lastIdx+1)); if (VERSION_MR < 3) { // Before version of Android 4.4.2 consumerIrManager.transmit(SAMSUNG_FREQ, SAMSUNG_POWER_TOGGLE_COUNT); } else { // Later version of Android 4.4.3 consumerIrManager.transmit(SAMSUNG_FREQ, SAMSUNG_POWER_TOGGLE_DURATION); } } }

각 제조사의 SDK와 관련 문서는 아래에 정리하였다. 실제 테스트를 해보니 


LG Qremote : http://developer.lge.com/resource/mobile/RetrieveDocDevLibrary.dev

HTC IR API : https://www.htcdev.com/devcenter/opensense-sdk/legacy-apis/htc-ir-api/htc-ir-installation/


삼성은 별도로 SDK가 제공되지 않는 관계로 샘플앱을 분석하는 것을 추천한다.


삼성 샘플코드 : https://github.com/jmandawg/SamsungIRRemote


지원되는 단말기 종류

지원되는 단말기는 정말 많으며 위키피디아에 잘 정리되어 있다.

지원되는 단말기 목록 링크 : https://en.wikipedia.org/wiki/List_of_devices_with_IR_blaster

Samsung Galaxy S4, S5 , S6, Note 3 , Note 4 , Note 5 , Tab Pro

HTC One m7 , m8 , m9 ,

LG G2 , G3 , G4 , V10


2017-03-29 내용추가

 적외선 송신기 성능이 휴대폰마다 차이가 심각하게 난다. 신호세기나 거리 등 여러모로 봤을 때 적외선 앱이 가장 잘 작동했던 안드로이드폰은 갤럭시S 시리즈였다.

728x90
반응형

댓글