2012-05-17 3 views
0

Мне интересно, можно ли активировать BroadcastRecievers onRecieve, чтобы получать SMS, чтобы быть активным только в течение ограниченного времени после нажатия кнопки?Android: активировать sms-приемник за ограниченное время

Я не хочу, чтобы он был активным все время и противоречил моему приятелю.

Я выполненный класс «общественный класс SmsReciever расширяет BroadcastReceiver» и определено в манифесте приемник:

<receiver android:name="SmsReciever" > 
     <intent-filter > 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 

ответ

2

Если вы хотите, чтобы активировать BroadcastReceiver временно, вы не должны определить приемник в манифесте. Вы должны register receiver в коде:

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); // I don't know where in the Android SDK this string defined 

BroadcastReceiver receiver = new SmsReciever(); 
registerReceiver(receiver, intentFilter); 

и unregister receiver, когда он не нужен больше:

unregisterReceiver(receiver); 
+0

Я не работает, им делать somethind неправильно ... Является ли «SmsReciever()» класс я сделал, что расширяет приемник вещания? Я скопировал ваш код и не получил сообщение, но когда я пришел к unregisterReceiver (приемник, aimFilter); than app crashed :( – speedyTeh

+0

Извините, я написал 'unregisterReceiver()' неправильно, обновлено. Да, 'SmsReciever' - ваш класс. Есть ли ошибки в LogCat? –

Смежные вопросы