title: Broadcast receiver priority - Only recieve one broadcast - SMS App- ANDROID
body: <p>I'm currently developing a sms app, I'm having trouble getting the sms's received.
  I changed the priority in my manifest to </p>
  
  <pre><code>&lt;intent-filter android:priority="2147483647" &gt;
        &lt;action android:name="android.provider.Telephony.SMS_RECEIVED" /&gt;
  &lt;/intent-filter&gt;
  </code></pre>
  
  <p>BROADCAST CLASS :</p>
  
  <pre><code>public class SMSReceiver extends BroadcastReceiver {
  
      private final String ACTION_RECEIVE_SMS = "android.provider.Telephony.SMS_RECEIVED";
      private SmsModel newSMS;
      private static final String TAG = "SMSReceiver";
  
      @Override
          public void onReceive(Context mContext, Intent intent) {
  
      Log.i("TEST","TEST");
  
      /**
       *  RECEPTION SMS
       */
  
      Bundle bundle = intent.getExtras();
      SmsMessage[] msgs = null;
  
      if (bundle != null) {
  
  
  
          Object[] pdus = (Object[]) bundle.get("pdus");
          msgs = new SmsMessage[pdus.length];
  
          for (int i = 0; i &lt; pdus.length; i++) {
              msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
  
              from = msgs[i].getOriginatingAddress();
              content = msgs[i].getMessageBody().toString();
          }
  
          Log.d("FIRST BROADCAST RECIEVER", "##### incoming sms from : " + from);
  
  
              }
  
  
      this.context = context;
      bundle = intent.getExtras();
      if (bundle != null) {
          Object[] pdusObj = (Object[]) bundle.get("pdus");
          SmsMessage[] messages = new SmsMessage[pdusObj.length];
  
          // getting SMS information from Pdu.
          for (int i = 0; i &lt; pdusObj.length; i++) {
              messages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
          }
  
          for (SmsMessage currentMessage : messages) {
  
              sender = currentMessage.getDisplayOriginatingAddress();
              msg = currentMessage.getDisplayMessageBody();
  
              Log.d("Sender::",sender);
              Log.d("Msg::",msg); 
          }
  
  
  
      //
  
      if (intent.getAction().equals(ACTION_RECEIVE_SMS)) {
  
          // RECUPERE SMS
              bundle = intent.getExtras();
              Object[] pdus = (Object[]) bundle.get("pdus");
  
              // RECONSTRUIRE SMS
              messages = new SmsMessage[pdus.length];
              for (int i = 0; i &lt; pdus.length; i++) {
                  messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
              }
  
              if (messages.length &gt; -1) {
  
                  // AFFECTE NUM_TEL + MSG + THREAD_ID
                  final String messageBody = messages[0].getMessageBody();
                  final String phoneNumber = messages[0]
                          .getDisplayOriginatingAddress();
                  int thread_id = ConversionFactory.getThreadIDfromNumber(phoneNumber);
  
                  // AJOUT SMS DANS BOITE DE RECEPTION ANDROID + RECUPERATION NOUVEAU ID SMS
                  ContentValues values = new ContentValues();
                  values.put("address", phoneNumber);
                  values.put("body", messageBody);
                  Uri uri = mContext.getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
  
                  // SI LA THREAD EXISTE...
                  if(thread_id != -1)
                  {
                      // CREATION NOUVEAU SMS
                      newSMS = new SmsModel(Integer.parseInt(uri.getLastPathSegment()), thread_id, messageBody, phoneNumber, 0, System.currentTimeMillis(), "receieved");
  
                      // AJOUTE DANS LA CONVERSATION
  
                      AllConversations.getInstance().getConversation(thread_id).ListeSms.put(String.valueOf(Integer.parseInt(uri.getLastPathSegment())), newSMS);
  
                      // SI L'UTILISATEUR EST DANS LA CONVERSATION(ACTIVTY) DU NOUVEAU SMS
                      if(thread_id == ((VariablesService)mContext.getApplicationContext()).mScheduleMessage.getItem(0).getThreadId())
                      {                           
                          // AJOUT DANS LISTVIEW MESSAGE
                          ((VariablesService)mContext.getApplicationContext()).mScheduleMessage.add(newSMS);
  
  
  
                      }
                      for (int i=0; i&lt;((VariablesService)mContext.getApplicationContext()).mScheduleConversation.getCount();i++) {
  
                          if (((VariablesService)mContext.getApplicationContext()).mScheduleConversation.getItem(i).getThreadId() == thread_id)
                          {
                                  ((VariablesService)mContext.getApplicationContext()).mScheduleConversation.remove(((VariablesService)mContext.getApplicationContext()).mScheduleConversation.getItem(i));
                                  newSMS.setContactName(mContext, newSMS.getNumber());
                                  ((VariablesService)mContext.getApplicationContext()).mScheduleConversation.insert(newSMS, 0);
                                  Log.i("ENTRER", ((VariablesService)mContext.getApplicationContext()).mScheduleConversation.getItem(i).getMessage());                                
                          }
                      }
  
                      // ENVOYER BROADCAST
                      Intent returnintent=new Intent("RECIEVE_INTENT_FROM_BROADCAST");
                      mContext.sendBroadcast(returnintent);
  
                      Log.i(TAG, newSMS.toString());
                  }
  
                  //VIBRATOR
                  Vibrator v;
                  v=(Vibrator)mContext.getSystemService(Context.VIBRATOR_SERVICE);
                  v.vibrate(1000);
  
  
  }
  </code></pre>
  
  <p>XML</p>
  
  <pre><code>    &lt;receiver
          android:name="com.application.reciever.SMSReceiver"
          class="com.application.reciever.SMSReceiver" android:exported="true"&gt;
          &lt;intent-filter android:priority="999" &gt;
              &lt;action android:name="android.provider.Telephony.SMS_RECEIVED" /&gt;
          &lt;/intent-filter&gt;
      &lt;/receiver&gt;
  </code></pre>
  
  <p>LOGCAT:</p>
  
  <pre><code>11-17 11:49:08.570: I/MESSAGE(25588): Sending SMS !
  11-17 11:49:08.590: I/ConversationActivity(25588): SMS Sent.
  11-17 11:49:10.820: I/bcsms(25588): 3424 - 46 - tts - +33610030697 - 17-11-2012 - 1353149350823 - receieved
  11-17 11:49:10.830: I/BROADCAST(25588): GOT THE INTENT
  11-17 11:49:11.570: D/OpenGLRenderer(25588): Flushing caches (mode 1)
  11-17 11:49:12.330: W/IInputConnectionWrapper(25588): showStatusIcon on inactive InputConnection
  11-17 11:49:14.940: D/dalvikvm(25588): GC_CONCURRENT freed 293K, 8% free 8141K/8775K, paused 2ms+8ms
  
  
  11-17 11:49:18.670: I/MESSAGE(25588): Sending SMS !
  11-17 11:49:18.680: I/ConversationActivity(25588): SMS Sent.
  11-17 11:49:21.860: D/OpenGLRenderer(25588): Flushing caches (mode 1)
  11-17 11:49:22.120: W/IInputConnectionWrapper(25588): showStatusIcon on inactive InputConnection
  </code></pre>
  
  <p>As you can see I don't receive the second SMS in the reciever, any ideas?</p>