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 액티비티가 호출 된다.
- 윗쪽에 받은 문자가 보인다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
App 개발 : 잠금화면- 원격잠금[마무리] (13) | 2013.04.30 |
---|---|
App 개발 : 잠금화면- 원격잠금[DevicePolicyManager] (2) | 2013.04.29 |
App 개발 : 잠금화면- 원격잠금 (20) | 2013.04.14 |
App 개발 : 잠금화면- 기본 틀(Service, Broadcast, KeyguardManager 활용) (2) | 2013.02.22 |
App 개발 : 잠금화면- Service 와 BroadcastReceiver (1) | 2013.02.01 |