Android广播接收器从短信关键字开始

Posted

技术标签:

【中文标题】Android广播接收器从短信关键字开始【英文标题】:Android Broadcast Receiver start from text message keyword 【发布时间】:2012-05-23 23:56:04 【问题描述】:

如何设置关键字从短信发起广播接收?我的广播接收器正常工作,问题是它在接收任何短信时开始活动,我只需要它开始接收 1 或 2 个关键字“酒店和/或房屋”我该怎么做......谢谢。下面是我的代码

-清单- " "

-实际接收器类- 公共类 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);   

【问题讨论】:

这是我的 mainfest 【参考方案1】:

BroadcastReceiver 基于&lt;intent-filter&gt; 侦听 Intent。 data 过滤器不提供您要求的过滤类型,因为它不过滤 SmsMessage.getMessage()。除了收听 SMS 之外,您还可以扫描每条消息中的关键字,然后开始所需的活动。

【讨论】:

在创建 SmsMessage 对象时,将消息的第二个副本放入 StringBuilder。然后检查 StringBuilder 对象是否包含您要搜索的单词。如果确实有关键字,则启动活动,如果没有,则什么也不做。

以上是关于Android广播接收器从短信关键字开始的主要内容,如果未能解决你的问题,请参考以下文章

广播短信接收器

从广播接收器android调用活动方法?

android 6.0为啥接收不到短信广播

Android studio之广播监听接收短信

Android SMS 广播接收器不工作

安卓学习之接收发送短信