我想创建一个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);
}
}
}
你能帮助我吗,谢谢!