In android how should i get phone number of sms sender?

前端 未结 3 1905
逝去的感伤
逝去的感伤 2020-12-20 10:24

In android how should i get phone number of sms sender?

I make application which sends sms but takes money charges for that, so can i send s

3条回答
  •  执笔经年
    2020-12-20 10:35

    Here's an awesome reference. It has the following tutorial link to the code below.

    It worked great for me!

    public class SmsReceiver extends BroadcastReceiver {
    
    @Override
      public void onReceive(Context context, Intent intent) {
            final String tag = TAG + ".onReceive";
            Bundle bundle = intent.getExtras();
            if (bundle == null) {
                  Log.w(tag, "BroadcastReceiver failed, no intent data to process.");
                  return;
            }
            if (intent.getAction().equals(SMS_RECEIVED)) {
                  Log.d(tag, "SMS_RECEIVED");
    
                  String smsOriginatingAddress, smsDisplayMessage;
    
                   /**
                   * You have to CHOOSE which code snippet to use NEW (KitKat+), or legacy
                   * Please comment out the for{} you don't want to use.
                   */
                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    
                     // API level 19 (KitKat 4.4) getMessagesFromIntent
                     for (SmsMessage message : Telephony.Sms.Intents.
                                            getMessagesFromIntent(intent)) {
                        Log.d(tag, "KitKat or newer");
                        if (message == null) {
                              Log.e(tag, "SMS message is null -- ABORT");
                              break;
                        }
                        smsOriginatingAddress = message.getDisplayOriginatingAddress();
                        //see getMessageBody();
                        smsDisplayMessage = message.getDisplayMessageBody();
                        processReceivedSms(smsOriginatingAddress, smsDisplayMessage);
                      }
                   } else {
    
                      // Processing SMS messages the OLD way, before KitKat,
                      // this WILL work on KitKat or newer Android
                      // PDU is a “protocol data unit”, which is the industry
                      // format for an SMS message
                      Object[] data = (Object[]) bundle.get("pdus");
                      for (Object pdu : data) {
                        Log.d(tag, "legacy SMS implementation (before KitKat)");
                        SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu);
                        if (message == null) {
                              Log.e(tag, "SMS message is null -- ABORT");
                              break;
                        }
                        smsOriginatingAddress = message.getDisplayOriginatingAddress();
                        // see getMessageBody();
                        smsDisplayMessage = message.getDisplayMessageBody();
                        processReceivedSms(smsOriginatingAddress, smsDisplayMessage);
                      }
                   }
            } // onReceive method
    

提交回复
热议问题