Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何覆盖默认呼叫屏幕?_Android_Android Studio_Phone Call - Fatal编程技术网

Android 如何覆盖默认呼叫屏幕?

Android 如何覆盖默认呼叫屏幕?,android,android-studio,phone-call,Android,Android Studio,Phone Call,我想在用户从我的android应用程序拨打任何号码时启动我的自定义屏幕,而不是默认的来电屏幕。一般来说,为了知道如何覆盖任何默认活动,首先你需要知道启动活动的意图 确定意图的结构 打开Android监视器(又名Logcat) 筛选日志以仅显示与字符串“ActivityManager”匹配的日志 启动要覆盖的活动。在您的情况下,启动呼叫屏幕 如果活动可以被覆盖,您应该会看到一个带有“开始…”的日志条目,请复制该条目,以免在日志中丢失它。在我的设备上,此条目是: 从显示器0上的uid 10088启动

我想在用户从我的android应用程序拨打任何号码时启动我的自定义屏幕,而不是默认的来电屏幕。

一般来说,为了知道如何覆盖任何默认活动,首先你需要知道启动活动的意图

确定意图的结构

  • 打开Android监视器(又名Logcat)
  • 筛选日志以仅显示与字符串“ActivityManager”匹配的日志
  • 启动要覆盖的活动。在您的情况下,启动呼叫屏幕
  • 如果活动可以被覆盖,您应该会看到一个带有“开始…”的日志条目,请复制该条目,以免在日志中丢失它。在我的设备上,此条目是:

    从显示器0上的uid 10088启动u0{act=android.intent.action.CALL dat=tel:xxxxxxxxxx flg=0x10000000 cmp=com.android.server.telecom/.CallActivity(有额外功能)}

    这个意图是由

    • 行为-意图行为
    • dat-意图数据
    • cmp-意图组件
    现在,您需要检查此意图是否可以在不指定组件的情况下启动默认拨号程序

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

  • 亚行壳牌
  • am start-a android.intent.action.CALL-d电话:XXXXXXXXXX(填写您想要测试的号码)
  • 如果它启动拨号器,那么,瞧。您应该能够为您的应用程序设置适当的操作和数据。然后,当用户下次尝试拨打电话时,它会询问用户想要使用哪个应用程序