0

最近受信したSMSの送信者情報(電話番号、日付)を取得したいアプリケーションを作成しようとしており、その特定の番号に返信メッセージを送信したい.

このコードを試してみましたが、最近受信した SMS の送信者情報を取得するにはどうすればよいですか?

Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String string = "";
String phone = "";

if (bundle != null)
{
    //---receive the SMS message--
    Object[] pdus = (Object[]) bundle.get("pdus");
    msgs = new SmsMessage[pdus.length];            
    for (int i=0; i<msgs.length; i++){
        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
        phone = msgs[i].getOriginatingAddress();  // Here you can get the phone number of SMS sender.
        string += msgs[i].getMessageBody().toString(); // Here you can get the message body.
      }
}

ブロードキャスト受信者を拡張せずにメッセージ送信者番号を取得する方法はありますか?メッセージログからアクセスするにはどうすればよいですか?

4

2 に答える 2

1

Follow this example step by step:

SMS Messaging in Android

Contains both receiving and replying to an sms, also includes full code! Receiving SMS is via Broadcast Receiver


Is there anyway to get the message sender number without extending broadcast receiver?Anyway to access from the message log?

You can access existing sms db via Content Providers but the message get there after the broadcast receiver and its more advances to "watch" when a new message is written in android database.


how can I get the recently received SMS's sender information?

The answer this line:

phone = msgs[i].getOriginatingAddress();  // Here you can get the phone number of SMS sender.

the number is the given number at simulator OR the sender "number" given by your network provider, it can also be text.

于 2013-03-12T08:09:59.453 に答える
1

次のコードは、受信したテキスト メッセージの数を示します。

    Uri uri = Uri.parse("content://sms/inbox");
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    int i =0;
    String[] number = new String[cursor.getCount()];  
    while (cursor.moveToNext()) {
        number[i] = (String) cursor.getString(cursor.getColumnIndex("address")); 
        i++;                         
        }
    }

最近受信したテキスト メッセージの数を取得するには、アクセスできます。

   String mostRecentNumber = number[0];
于 2013-03-13T09:59:35.947 に答える