我有一个非常标准的BroadcastReceiver来拦截传出呼叫。我想给用户选择将其设置为关闭(禁用BroadcastReceiver),给我选项来使用它(BroadcastReceiver已启用但提示用户是否使用该服务),并始终打开(无提示) ,BroadcastReceiver将始终触发活动。)
使用标准意图:
<intent-filter android:priority="1">
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
活动也是通用的:
public class CallReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String dialedNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
String correctedNumber = correctNumber(dialedNumber);
setResultData(correctedNumber);
}
}
我怎样才能做到这一点?感谢
答案 0 :(得分:0)
您可以将用户设置存储在SharedPreference
对象中。您可以使用PreferenceScreen
- PreferenceActivity
来存储用户设置。您可以在SharedPreference
方法中阅读onReceive
对象。
这不会完全禁用BroadcastReceiver,但对于不会对电池寿命产生重大影响的广播接收器来说,这是一个不错的解决方案。