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

use*_*234 5 android phone-call android-intent

我目前正在拦截一个电话并将其转发到我自定义的"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);
Run Code Online (Sandbox Code Playgroud)

Ant*_*ony 1

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