自动回复?

时间:2012-04-12 03:12:10

标签: android sms broadcastreceiver

我想创建一个app1,在user1中向user2发送一条带有特定文本的消息。 user2通过短信自动将位置发送给user1,但不应通知用户2。 接收文本时,下面的BroadcastReceiver显示"得到它" ..当消息"更新"时,如何进行自动回复?已收到

IncomingSMSReciever.java

public class  IncomingSMSReceiver extends  BroadcastReceiver{
private static final String SMS_RECEIVED =
        "android.provider.Telephony.SMS_RECEIVED";

@Override
public void onReceive(Context _context, Intent _intent) {

    if (_intent.getAction().equals(SMS_RECEIVED)) {
        Bundle bundle = _intent.getExtras();
        if (bundle != null) {


            Object[] pdus = (Object[]) bundle.get("pdus");

            SmsMessage[] messages = new SmsMessage[pdus.length];
            for (int i = 0; i < pdus.length; i++)
                messages[i] = SmsMessage
                        .createFromPdu((byte[]) pdus[i]);
            for (SmsMessage message : messages) {
                String strPhoneNo = message.getOriginatingAddress();
                String msg = message.getMessageBody();

                if (msg.startsWith("UPDATE"))
                {

                    Toast.makeText(_context, "Whats up!!", Toast.LENGTH_LONG).show();
                    // this stops notifications to others
                    this.abortBroadcast();
                    // do what you want

                }
            }
        }
    }
}
}

SvrSmsListener.java

public class SrvSmsListener extends Service 
{
IncomingSMSReceiver SMSReceiver=new IncomingSMSReceiver();
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
public void onCreate() {
final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
IntentFilter filter = new IntentFilter(SMS_RECEIVED);

BroadcastReceiver receiver = SMSReceiver;
registerReceiver(receiver, filter);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}

@Override
public void onDestroy() {
if (SMSReceiver != null)
{
    unregisterReceiver(SMSReceiver);
}
}
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub

}
}

1 个答案:

答案 0 :(得分:0)

当您检测到传入消息以WORD“UPDATE”开头时,您可以调用SmsManager并使用sendTextMesage将文本消息发送到指定的号码。除了发送部分之外,您似乎已准备好所有代码,您是否面临着一个问题。