Android Broadcast Receiver从短信关键字开始

时间:2012-05-23 23:56:05

标签: android text sms broadcastreceiver

如何设置关键字以从短信启动广播接收器?我得到了我的广播接收器工作,问题是它开始接收任何短信的活动,我只是需要它开始接收1或2个关键词“酒店和/或房子”我该怎么做....谢谢。以下是我的代码

-manifest- “                  “

- 实际接收器类 - 公共类SMSReceiver扩展了BroadcastReceiver {

public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras();

    Object messages[] = (Object[]) bundle.get("pdus");
    SmsMessage smsMessage[] = new SmsMessage[messages.length];
    for (int n = 0; n < messages.length; n++) {
        smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
    }

    //show first message
    Toast toast = Toast.makeText(context, "Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
    toast.show();

    //and then start an activity

    Intent i = new Intent(context,AppActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);   

1 个答案:

答案 0 :(得分:1)

BroadcastReceiver根据<intent-filter>收听Intents。 data过滤器不提供您要求的过滤类型,因为它不会在SmsMessage.getMessage()上过滤。除了收听短信之外,您还可以扫描关键字的每条消息,然后开始所需的活动。