我有一个BroadcastReceiver
,其中应用正在侦听传入的短信,即时IntentService
onReceive
BroadcastReceiver
方法public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
this.abortBroadcast();
context.startService(new Intent(context,MyIntentService.class));
}
}
onReceive
在IntentService
方法中播放广播。我想根据条件清除MyBroadcastReceiver
中的广播,以便短信进入收件箱而不是,我该怎么做?我可以重新发布广播,以便将消息保存在收件箱中并绕过{{1}}
问候。
答案 0 :(得分:1)
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if(prefs.getBoolean("<KEY>", true)){
context.startService(new Intent(context,MyIntentService.class));
}
}
}
在intentService中,如果您的条件满足设置为Boolean
并且您的密钥为false
。
答案 1 :(得分:1)
我想根据条件清除IntentService中的广播,这样SMS就不会进入收件箱,我该怎么做?
这是不可能的,抱歉。
我可以重新发布广播,以便将消息保存在收件箱中并绕过MyBroadcastReceiver
这也是不可能的,抱歉。
由于您的整个应用无法在Android 4.4+上运行,我建议您重新考虑自己在做什么。用户在Android 4.4 +上选择的SMS客户端将始终收到SMS消息。