-1

我想從另一個處理SMS的應用程序發送一個意圖給這個接收器。我對這個短信處理很新穎。有人可以親切地指導我做什麼意圖,我的意思是,如何以及意圖應該執行這段接收器代碼。謝謝。如何將意圖發送到短信接收器?

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class SMSReceiver extends BroadcastReceiver { 
public void onReceive(Context context, Intent intent) { 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     try { 
      Object[] objArr = (Object[]) extras.get("pdus"); 
      for (Object obj : objArr) { 
       SmsMessage createFromPdu = SmsMessage.createFromPdu((byte[]) obj); 
       String displayOriginatingAddress = createFromPdu.getDisplayOriginatingAddress(); 
       String displayMessageBody = createFromPdu.getDisplayMessageBody(); 
       try { 
        if (displayOriginatingAddress.contains("MADAPP")) { 
         if (displayMessageBody.contains("The PIN is")) { 
          Toast.makeText(context, displayMessageBody, 1).show(); 

         } 
         if (displayMessageBody.contains("successfully validated")) { 
          displayMessageBody.contains("activating Pockets"); 
         } 
        } 
       } catch (Exception e) { 
       } 
      } 
     } catch (Exception e2) { 
     } 
    } 
} 

}

+0

發送短信到設備/模擬器的應用程序。 –

回答

0

試試這個代碼

寫在你的清單

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
    <receiver android:name=".SMSReceiver"> 
      <intent-filter> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 

詳細描述

http://androidexample.com/Incomming_SMS_Broadcast_Receiver_-_Android_Example/index.php?view=article_discription&aid=62&aaid=87

+0

感謝您的回覆,但是如果我想從其他應用程序觸發這段代碼,我該怎麼辦? –

+0

您可以設置您的自定義操作,這將由此廣播接收器接收。爲前。 ' '您可以通過此鏈接獲取更多詳情https://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/ –