如何隐藏/取消默认传入屏幕

时间:2012-03-04 12:54:53

标签: android android-intent phone-call

我正在拦截一个电话并将其转发到我自定义的“oncallscreen”活动。但是,在进入我的屏幕之前,它将闪烁到默认的“oncallscreen”。如何隐藏/取消此屏幕,以便在接到电话时我只获得自定义屏幕。

@Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
        String state = extras.getString(TelephonyManager.EXTRA_STATE);
        Log.w("DEBUG", state);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
            String phoneNumber = extras
                    .getString(TelephonyManager.EXTRA_INCOMING_NUMBER);

1 个答案:

答案 0 :(得分:1)

您需要拦截具有最高优先级的广播android.intent.action.PHONE_STATE,如果在BroadcastReceiver.onReceive()中您将通过BroadcastReceiver.abortBroadcast()取消广播,您将能够停止默认来电屏幕显示,因为默认应用程序将不会接收来电广播。之后,您可以自由展示自己的活动。