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