Отображение отправки SMS в программе просмотра сообщений по умолчанию в Android - PullRequest
0 голосов
/ 24 декабря 2011

Я создал приложение, которое анализирует полученные SMS-сообщения и отправляет сообщения отправителю. Но те SMS, которые отправляются моим телефоном автоматически, не отображаются в программе просмотра сообщений по умолчанию. Как это сделать ??

Это код, который я использую для отправки SMS

package com.lalsoft.janko;

import java.util.Calendar;

import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.telephony.gsm.SmsMessage;
import android.util.Log;
import android.view.View;


public class SMSReceiver extends BroadcastReceiver
{
public String SendMsgBody;


private static final String LOG_TAG = "SMSReactor";

@Override
public void onReceive(Context context, Intent intent) 
{

    //---get the SMS message passed in---
    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String str = "";
    String PhNo="";
    String MsgBody="";
    if (bundle != null)
    {
        //---retrieve the SMS message received---
        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]);                
            str += "SMS from " + msgs[i].getOriginatingAddress();
            PhNo=msgs[i].getOriginatingAddress();
            str += " :";
            str += msgs[i].getMessageBody().toString();
            MsgBody=msgs[i].getMessageBody().toString();
            str += "\n";
        }


        if(MsgBody.equalsIgnoreCase("Test"))
        {
               SendSMS(PhNo,"Got you!!...Missile Launch initiated.Your location has been traced and the missile will hit your place in approximatly 2 Mins.. ESCAPE!!");
            //SendSMS2(PhNo,"Got you!!...Missile Launch initiated.Your location has been traced and the missile will hit your place in approximatly 2 Mins.. ESCAPE!!");
        }

}



/* public void SendSMS2(String phonenumber,String message)  
{  
    startActivity(new Intent(Intent.ACTION_VIEW,Uri.fromParts(message, phonenumber, null)));  
} 
*/
private void SendSMS(String phonenumber,String message)
{
    SmsManager manager = SmsManager.getDefault();
    manager.sendTextMessage(phonenumber, null, message, null, null);
}

}

Здесь при получении SMS с надписью «test» мое приложение отправляет SMS обратно отправителю. Но при этом методе SendSMS отправляет SMS, но отправленное сообщение не отображается в исходном / стандартном SMS Заявка. Что я должен сделать, чтобы отправить это SMS с моего телефона обратно отправителю, который отображается в собственном приложении SMS.

1 Ответ

0 голосов
/ 29 декабря 2011

Наконец-то я добился успеха ... Хотя я читал в некоторых местах, этот метод не должен использоваться во многих местах .. вот так Я использую этот метод здесь ... так что если кто-тозатем этот код, пожалуйста, сначала сообщите нам о проблемах ..

вот мой код,Дополнительный контекст добавлен в мой код выше.

    if(MsgBody.equalsIgnoreCase("Test"))
    {
           SendSMS(context,PhNo,"Got you!!...Missile Launch initiated.Your location has been traced and the missile will hit your place in approximatly 2 Mins.. ESCAPE!!");

    }

Вот и все .. Надеюсь, это поможет кому-то, как я ..

...