2011-01-27 4 views
0

manifeast 파일에서 리시버를 선언하고 액션 태그를 다음과 같이 선언 한 자동 텍스트 응답 응용 프로그램을 만들었습니다.SMS 수신을위한 브로드 캐스트 리시버가 안드로이드에서 부재중 전화를 걸고 있습니다.

<receiver android:name=".SmsReceiver"> 
      <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> </receiver> 

수신기 클래스에서 수신기의 동작 유형을 다음과 같이 확인하면됩니다.

public void onReceive(Context context, Intent intent) 
{ 

      if(intent.getAction().equalsIgnoreCase("android.provider.Telephony.SMS_RECEIVED")) 
     { 
      Bundle bundle = intent.getExtras();   
      SmsMessage[] msgs = null; 
      String str = "";  
      if (bundle != null) 
      { 
      //---retrieve the SMS message received--- 
       Object[] pdus = (Object[]) bundle.get("pdus"); 
       msgs = new SmsMessage[pdus.length]; 
       for (int i=0; i<msgs.length; i++) 
       { 
        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
        str += "SMS from " + msgs[i].getOriginatingAddress();      
        str += " :"; 
        str += msgs[i].getMessageBody().toString(); 
        str += "\n"; 
        address=msgs[i].getOriginatingAddress(); 
       } 
     /* other functionality........... */ 
    } 

    } 

지금이 수신기는 또한 내가 부재중 전화에 전화를 얻기 위해이 원하지 않는 들어오는 문자 메시지 만 약간의 시간 부재중 전화에 대한 전화를 받고있다. 내가 놓친 전화를 피하기 위해해야 ​​할 일.

감사합니다. 크람

답변

0

은이 방법으로 그것을 할 수 있습니다 참조 : 의도에 대한 방송을 등록 android.provider.Telephony.SMS_RECEIVED

registerReceiver(new BroadcastReceiver(){ 
     @Override 
     public void onReceive(Context arg0, Intent arg1) { 
      // do ur stuff; 

     } 
    }, new IntentFilter("android.provider.Telephony.SMS_RECEIVED")); 

u는 처음이 패키지를 가져와야합니다

import android.content.BroadcastReceiver; 
관련 문제