2
我想开发一个接收机类,它将监听手机状态。我想使用传入的电话号码在doSomething()上工作。BroadCastReceiver收听来电并在时间间隔之间工作
而我的需要是我的接收器应该在一定的时间间隔内工作(比如12:30 PM到01:00 PM),除了这个时间间隔我的接收器不应该工作。
我所做的尚未:
这是我的广播接收器类:
public class MyTest extends BroadcastReceiver {
protected AudioManager audioManager;// = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
protected Context context;
private ITelephony telephonyService;
@Override
public void onReceive(Context context, Intent intent) {
audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
this.context = context;
String action = intent.getAction();
if(action.equalsIgnoreCase("android.intent.action.PHONE_STATE")){
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_RINGING)) {
//Incoming call
doSomething(intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));
}
}
else {
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage message = SmsMessage.createFromPdu((byte[])pdus[0]);
if(!message.isEmail())
doSomething(message.getOriginatingAddress());
}
}
}
,我使用它作为我的活动:
registerReceiver(new MyTest(), new IntentFilter("android.intent.action.PHONE_STATE"));
在清单我declaired它作为
<receiver android:name=".MyTest"></receiver>
问题:
它,如果我的应用程序在前台运行,但是当我关闭我的应用程序它不工作的工作。 我没有在onPause()或Activity生命周期的其他方法上编写任何代码。
我在做什么错了?有没有其他办法呢?
我怎么能注销吗? –
与清单,你不能,但你可以把你的onReceive方法检查,以执行您的任务,根据您的条件....... –
如果我不想打电话给接听电话,那么在那里具体意图是什么? – Adithya