2015-08-19 2 views
-2

Я стараюсь читать смс с помощью broadcastReciver. Я искал, и я писал этот код:android read sms программно

public class IncomingSms extends BroadcastReceiver { 

// Get the object of SmsManager 
final SmsManager sms = SmsManager.getDefault(); 

public void onReceive(Context context, Intent intent) { 

    // Retrieves a map of extended data from the intent. 
    final Bundle bundle = intent.getExtras(); 

    try { 
     if (bundle != null) { 
      final Object[] pdusObj = (Object[]) bundle.get("pdus"); 

      for (int i = 0; i < pdusObj.length; i++) { 

       SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 
       String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 

       String senderNum = phoneNumber; 
       String message = currentMessage.getDisplayMessageBody(); 

       Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message); 

       int duration = Toast.LENGTH_LONG; 
       Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration); 
       toast.show(); 
      } // end for loop 
      } // bundle is null 

    } catch (Exception e) { 
     Log.e("SmsReceiver", "Exception smsReceiver" +e); 
    } 
} 

В моей радиовещательного приемника может показать все сообщения дохода в тосте, но мне это не нужно. Мне нужны только бетонные смс. Например, мне нужно прочитать sms, который получил пользователя +4423232 Мне нужно только прочитать только эти цифры (пользователи) sms

Как я могу решить свою проблему?

+0

Вы можете, конечно, добавить 'if (senderNum.equals (" 4423232 "))', или вы могли бы использовать общие настройки или базу данных sqlite и проверить, является ли номер одним, который должен быть показан таким образом. Я уверен, что вы знали, как использовать инструкцию 'if', так что же вы делаете ... или что именно вы хотите узнать от этого вопроса? – Jakar

ответ

0

Просто введите ph. Нет, получив свой ph. Нет программно или попросите его об этом, а затем используйте оператор if, чтобы узнать, есть ли сообщение с нужного номера, а затем делать все, что угодно. Как и то, что сказал Джакар. В чем проблема, если вы знаете, как использовать заявление try, почему вы не можете использовать оператор if?

Смежные вопросы