Intent-Filter Priority Setting


intent-filter에 android:priority값을 부여해서 받는 순서를 설정 가능
해당 값에 따라 먼저 받아 처리하고 낮은 것은 못 받게 설정이 가능함
아래는 SMS 기준으로 설명

1. SMS보내기
A. SmsManager smsMgr = SmsManager.getDefault();smsMgr.sendTextMessage(destinationAddress, scAddress, message, sentIntent, deliveryIntent);

2. SMS받기
A. <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter>
B. Receiver를 등록하고 broadcastReceiver로 받아서 처리하면 됨

3. SMS받을 시 기본 SMS에서의 NOTI를 무시하고 개발 어플에서만 알림을 할수 있는지 확인
A. 찾아보니 GO SMS(SMS어플)에서 아래와 같이 처리 한 것 같음
B. 2번과 같이 구현하고 intent-filter에 android:priority값을 높게 부여해서 기존 SMS가 받기 전에 미리 받아서 처리 하는 방법임
C. broadcastReceiver에서 onReceive()에서 받아 처리 될 때 abortBroadcast()를 넣어주면 priority가 낮은 녀석들한테 인텐트를 보내는 것을 멈춤.

※ 참고사항
1. 필요한 권한
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>

댓글

이 블로그의 인기 게시물

이클립스 오류 - 프로젝트 폴더가 열리지 않는 경우

Subversion (SVN) 설치 및 다중 저장소 설정 가이드

MySQL Root 비밀번호 재설정하기: 완벽한 가이드