Android的广播接收器从短信关键字开始 [英] Android Broadcast Receiver start from text message keyword

查看:109
本文介绍了Android的广播接收器从短信关键字开始的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何设置关键词,从短信发起广播接收器?我得到了我的广播接收器工作,问题是它收到任何短信开始的活动,我只是需要它来开始接收1个或2个关键字酒店和/或楼我怎么做这个....谢谢。下面是我的code

-manifest-

    
     
    
 

- 实际接收课堂
公共类SMSReceiver扩展广播接收器{

 公共无效的onReceive(上下文的背景下,意图意图){
    捆绑包= intent.getExtras();    对象信息[] =(Object []对象)bundle.get(的PDU);
    SmsMessage smsMessage [] =新SmsMessage [messages.length]
    对于(INT N = 0; N< messages.length; N ++){
        smsMessage [η] = SmsMessage.createFromPdu((字节[])消息[N]);
    }    //显示第一条消息
    吐司面包= Toast.makeText(背景下,收到的短信:+ smsMessage [0] .getMessageBody(),Toast.LENGTH_LONG);
    toast.show();    //然后启动一个活动    意图I =新意图(背景下,AppActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(ⅰ);


解决方案

广播接收器听的基础上的意图<意向滤光器> 。该数据过滤器不提供一种过滤你的要求,因为它并不在 SmsMessage.getMessage过滤器()。你除了可以收听短信要做的就是扫描每封邮件的关键字,然后启动所需的活动。

How to set keyword to initiate Broadcast Receiver from text message? I got my Broadcast Receiver working, problem is it starts activity on receiving any text message and I just need it to start on receiving 1 or 2 keywords "Hotel and/or House" how do i do this .... Thank you. Below is my code

-manifest- " "

-actual receiver class- public class SMSReceiver extends 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);   

解决方案

The BroadcastReceiver listens to Intents based on an <intent-filter>. The data filter doesn't provide kind of filtering you're asking for because it doesn't filter on SmsMessage.getMessage(). What you can do in addition to listening for an SMS is scan each message for the keyword and then start the desired activity.

这篇关于Android的广播接收器从短信关键字开始的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆