2012-09-13 24 views
0

我試圖做一個簡單的應用程序以攔截從我的電話運營商的電子郵件服務收到的所有短信。Android的通知最後收到的短信

它是如何工作的:我有一個電子郵件從我的電話運營商的每一個,一個電子郵件來與短信收件箱時通知我。該短信來自這樣:


You have a new e-mail from:[email protected] See it now through internet! Visit http://m.iclaro.com.br. Subject: SUBJECT GOES HERE 

這個程序,我試圖使已攔截這些短信,檢索整個主題(「SUBJECT GOES HERE」),併發送短信假來自只有內容主題的數字。

我已經做了:從這個電子郵件服務攔截所有的這些短信,檢索一個新號碼(我選擇3)只是主題的主題和僞造新的SMS。

但現在我有一個問題:這個新的僞造的短信不顯示任何通知。

這裏去的廣播接收器:


public class SmsReceiver extends BroadcastReceiver 
    { 
     ... 
     public void onReceive(Context context, Intent intent) 
     { 
      ... 
      if(address.contains("1") && body.contains(replace)) 
      {     
        body = body.substring(body.lastIndexOf(replace),body.length()); 
        body = body.replace(replace, ""); 
        address = "3"; 

        ContentResolver contentResolver = context.getContentResolver(); 
        ContentValues values = new ContentValues(); 
        values.put("address", address); 
        values.put("body", body); 
        contentResolver.insert(Uri.parse("content://sms/inbox"), values); 
        this.abortBroadcast(); 
      } 
     } 
    } 

我也試過:


if(address.contains("1") && body.contains(replace)) 
{ 
    this.abortBroadcast(); 

contentResolver.insert(Uri.parse("content://sms/inbox"), values); 
this.abortBroadcast(); 

this.clearAbortBroadcast(); 
contentResolver.insert(Uri.parse("content://sms/inbox"), values); 
this.abortBroadcast(); 

反正有重新通知最後接收到的短信?有什麼建議麼?

回答

0

您將有編輯接收的SMS消息後編碼PDU。爲此,您可以使用像smslib等java庫來編碼pdu。

public class SmsReceiver extends BroadcastReceiver 
    { 
     ... 
     public void onReceive(Context context, Intent intent) 
     { 
      ... 
      if(address.contains("1") && body.contains(replace)) 
      {     
        body = body.substring(body.lastIndexOf(replace),body.length()); 
        body = body.replace(replace, ""); 
        address = "3"; 

        //ContentResolver contentResolver = context.getContentResolver(); 
        //ContentValues values = new ContentValues(); 
        //values.put("address", address); 
        //values.put("body", body); 
        //contentResolver.insert(Uri.parse("content://sms/inbox"), values); 
        this.abortBroadcast(); 
        //create new pdu from the edited data 
        byte[] pdu = .......; 
        intent.putSerializableExtra("pdus", pdu); 
        context.sendBroadcast(intent); 
      } 
     } 
    } 
+0

感謝你,我發現這正是我所需要的答案。 http://stackoverflow.com/a/12338541/1575490 –