2011.03.09 14:37
              

                AndroidManifast 파일 구현부에, 
                 ...
                <receiver android:name="TestReceiver">
<intent-filter android:priority="99999999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver> 
                ...

                 BroadCastReceiver를 구현한 onReceive 함수에 abortBroadcast(); 추가


                 위와 같이 정의해 두면 타 어플리케이션의 BroadCastReceiver에서 감지 하지 못한다. ( 우선 순위를 이용한 )
신고
Posted by 구름같은사나이
2011.03.09 14:33

안드로이드의 SMS 수신과 송신 구현.
참고 할 것은 SMS 송신시에는 타 SMS 어플에 그 내역이 남지 않음. 


public class Test extends BroadcastReceiver {

      private final String SMS_R = "android.provider.Telephony.SMS_RECEIVED";
             
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();

if(action.equals(SMS_R))
{
                    //SMS 수신 부분 
Object[] pdu = (Object[])intent.getExtras().get("pdus");
SmsMessage[] msg = new SmsMessage[pdu.length];
for(int i = 0; i <msg.length; i++)
{
msg[i] = SmsMessage.createFromPdu((byte[])pdu[i]);
String number = msg[i].getOriginatingAddress();                   //송신자 전화번호
String content = msg[i].getDisplayMessageBody();               //송진자 내용
                                
                                //SMS 발신 부분
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(mNumber, null, mContent , null, null);  
                                //mNumber 는 받는 사람 전화번호  , mContent 는 보내는 내용
...


- 필요 Permission (SMS 관련) -

<uses-permission android:name="android.permission.WRITE_SMS" />       //SMS Provider로 전송
<uses-permission android:name="android.permission.SEND_SMS" />        //SMS 발송 가능
<uses-permission android:name="android.permission.RECEIVE_SMS" />   //수신 모니터링 
<uses-permission android:name="android.permission.READ_SMS" />        //SMS 읽기 관련
신고
Posted by 구름같은사나이
2010.10.18 17:16

Service등을 구현하여 이용하는 경우 대부분 재부팅 및 부팅 후에 특정 Task를 수행하고자 한다. 그러기 위해서는 BroadcastReceiver를 상속한 클래스에서 다음과 같이 action을 받아 주면 되겠다.

...

1. Intent Filter 설정 )       

<action android:name="android.intent.action.BOOT_COMPLETED"></action>
<action android:name="android.intent.action.REBOOT"></action>  
...

2. permission 설정 )     

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

3. receiver source 부분 )

@Override
public void onReceive(Context context, Intent intent) {
   String action=intent.getAction();
 
   if(action.equals(Intent.ACTION_BOOT_COMPLETED))
   { 
                //부팅후 Task 실행
   }
   else if(action.equals(Intent.ACTION_REBOOT))
   {
   //재부팅후 Task 실행
   }
신고
Posted by 구름같은사나이

티스토리 툴바