2011-01-27 69 views
0

我已经创建了自动文本回复应用程序,其中我在manifest文件中声明了接收方并声明了如下的操作标记。短信接收的广播接收机在Android中的未接呼叫时发出消息呼叫

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

在接收机类别i只检查动作类型的接收器如下。

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;