0

我有一个非常标准的 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);
    }
}

我怎样才能做到这一点?谢谢

4

1 回答 1

0

您可以将用户设置存储在SharedPreference对象中。您可以使用PreferenceScreen-PreferenceActivity来存储用户设置。您可以在方法中读取SharedPreference对象onReceive。这不会完全禁用广播接收器,但对于对电池寿命没有任何大影响的广播接收器来说,它可能是一个不错的解决方案。

于 2012-08-27T18:22:01.790 回答