如何覆盖默认呼叫屏幕?

如何覆盖默认呼叫屏幕?

问题描述:

我想启动我的自定义屏幕,当用户从我的Android应用程序拨打任何号码,而不是默认的调用者屏幕。如何覆盖默认呼叫屏幕?

一般来说,要想知道如何重写任何默认的活动,首先你需要知道可以发射活动的意图structure

确定意向

  1. 打开Android监视器(又名logcat的)
  2. 过滤日志的结构,只显示那些匹配字符串“ActivityManager”
  3. 启动所需的活动重写。在你的情况下,启动呼叫屏幕

如果活动可以被覆盖,你应该看到“启动...”日志条目,请复制进入,这样你就不会在日志中失去它。在我的设备,此内容是:

START U0 {行动= android.intent.action.CALL DAT =电话:XXXXXXXXXXX FLG = 0x10000000的CMP = com.android.server.telecom/.CallActivity(有演员)}从UID 10088上显示0

此意图是由

  • 行为 - 意图动作
  • DAT - 意图数据
  • CMP - 意图部件

现在你需要检查,如果这个意向可以启动默认的拨号器,而无需指定的组件。

检查是否默认的活动可以覆盖

  1. 亚行外壳
  2. 日上午开始-a android.intent.action.CALL -d电话:XXXXXXXXXXX(在数量填写你想测试用)

如果它启动拨号,然后,瞧。您应该能够为您的应用程序create an IntentFilter,适当地设置操作和数据。然后,用户下一次尝试拨打电话时,会询问用户想要使用的应用程序。