2011-10-11 72 views
0

我需要限制短信不保存在收件箱中。它應該保存在給定folder.For使用波紋管代碼的那個即時消息。我可以限制短信通知。通過使用this.abortBroadCast()在我的接收器類。但短信顯示在收件箱。 我需要限制它進入INBOX。它在其他文件夾中顯示。限制短信進入收件箱

public class SmsReceiver extends BroadcastReceiver 
{ 

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     //this stops notifications to others 
     this.abortBroadcast(); 

     //---get the SMS message passed in--- 
     Bundle bundle = intent.getExtras();   
     SmsMessage[] msgs = null; 
     String str = "";    
     boolean checksomething =true ; 
     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";   
      } 

     }      

     if(checksomething){ 
      Toast.makeText(context, "Broad Cast Cancelled", Toast.LENGTH_SHORT).show(); 
     }else{  
      this.clearAbortBroadcast();  
      //---display the new SMS message--- 
      Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
     } 

    } 
} 
+0

你所使用的平臺,你都沒有提到。 – Vicky

+0

我需要此應用程序爲Android 2.2及以上 – cherry

回答

1

剛上清單必須提高你的意圖的優先級,具體如下:

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

0

如果你要限制的短信進入其他應用程序存儲,您必須設置您的APP在nadroid.manifst中的「優先權」...這裏是 這種情況下,我阻止了自己的短信進入我的短信應用程序存儲。

============================================== =======================

SMSBROAD CAST RECEIVER CLASSS中的代碼。

if(sender.equalsIgnoreCase("+923339736506")) 
    { 
     Toast.makeText(context, "you are not allowed ! ", Toast.LENGTH_SHORT).show(); 
       this.abortBroadcast(); 
     } 

和設置在android.manifest優先這樣

 <receiver android:name=".SmsReceiver"> 

     <intent-filter android:priority="100"> 

     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 

     </intent-filter> 

    </receiver>