我正在拦截一个电话并将其转发到我自定义的“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);
答案 0 :(得分:1)
您需要拦截具有最高优先级的广播android.intent.action.PHONE_STATE
,如果在BroadcastReceiver.onReceive()
中您将通过BroadcastReceiver.abortBroadcast()
取消广播,您将能够停止默认来电屏幕显示,因为默认应用程序将不会接收来电广播。之后,您可以自由展示自己的活动。