App 개발 : 잠금화면- 원격잠금[SMS_Reciver]

2013. 4. 17. 16:54프로그래밍/안드로이드

기능

- 지정해둔 문자를 받으면 원하는 작업을 수행하게 한다. 


동작설명

1. 서비스에 SMS 리시버 등록

2. SMS 리시버 호출 시 받은 문자 데이터와 지정한 문자 비교

3. 같으면 액티비티 호출


필요한 기능

- 서비스, 브로드 캐스트 리시버

- 받은 문자 데이터 읽어 비교하기

- 서비스 실행/종료를 위한 액티비티


우선 서비스를 생성하고 매니패스트에 서비스와 SMS 리시버 관련 퍼미션을 등록합니다.

- 매니패스트.xml



- SMS 리시버를 이용하기 위한퍼미션

<uses-permission android:name="android.permission.RECEIVE_SMS"/>


그리고 서비스에 SMS 리시버를 생성하고 리시버를 등록합니다.

- 서비스.class [리시버 생성 및 등록]

서비스 실행 후 문자가 오면 onReceive가 호출됩니다.

이제 이 곳에서 받은 문자를 비교하고 지정한 문자와 받은 문자가 동일한 문자면 특정한 작업을 수행하게 만들어 봅시다.

저는 비교 문자를 '1234'로 지정, 받은 문자와 동일하면 SMSRequest 액티비티를 호출하도록 작업했습니다.


- 서비스[리시버 호출]


서비스를 실행하고 종료하기 위한 액티비티 생성

간단하게 실행 버튼과 종료 버튼을 추가하고 버튼에 대한 클릭 리스너를 등록한다.

버튼 클릭 이벤트, 서비스는 매니페스트에 설정한 액션을 이용.


- SMSActivity[버튼 클릭 이벤트 부분]


switch(v.getId()){

case R.id.Start:

startService(new Intent("sms_service"));        //서비스 시작

break;


case R.id.Stop:     

stopService(new Intent("sms_service")); //서비스 종료

break;

}


실행

- 안드로이드 에뮬레이터에서 서비스 실행.

- DBMS를 통해 문자 1234를 보낸다.


결과

- 메인 액티비티, 서비스 시작.


- 시작 후 문자 1234 전송, SMSRequest 액티비티가 호출 된다.

- 윗쪽에 받은 문자가 보인다.