BroadcastReceiver,SMS_RECEIVE,从服务中止

时间:2013-11-24 19:00:53

标签: android sms broadcastreceiver

我想创建一个SMS BlackLister应用程序来学习Android SDK,因此我创建了我的BroadCastReceiver扩展类。 我的应用程序检索传入消息的国家号,并将其与我的数据库中包含的消息进行比较(这是一个简单的过程),但我读到不应该从BroadCastReceiver调用长进程,这就是为什么我创建了一个从IntentService扩展的类,它应该执行所有后台作业(与数据库的内容进行比较,等等),但我不能中止来自此IntentService的广播,因此无法拦截之前的SMS其他应用程序。

我不知道如何找到解决方法,如果你需要看我的班级,请点击这里:

package com.example.smslistener;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;

public class SmsReceived extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent arg1) {
        final Object[] my = (Object[])arg1.getExtras().get("pdus");
        for(int i=0; i < my.length; i++){
            SmsMessage message = SmsMessage.createFromPdu((byte[])my[i]);
            String number = message.getOriginatingAddress();
            Intent intent = new Intent(context, SmsWorker.class);
            intent.putExtra("number", number);
            context.startService(intent);
        }
    }
}

你能帮助我吗,谢谢!

0 个答案:

没有答案