Android 打电话 流程

原创 2017年04月25日 16:16:43

需求: 在App调用打电话的时候,先把App隐藏,然后再打电话

实现:
1.把App隐藏的 使用

    moveTaskToBack(true);

2.但是需要掉完打电话,就先把App隐藏

    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:10086"));
    startActivity(intent);

是 这段代码之前还是之后调用呢

试过了,之前不行~隐藏了,但是没打电话
那之后呢?
发现
1.立即执行不行,
2.加timer偶尔行,偶尔不行
3.onPause不行

居然最后,是 用ForResult搞定

    private void serviceCall() {
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:10086"));
        startActivityForResult(intent, 101);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode==101) {
            moveTaskToBack(true);
        }
    }

然后打log证明
1.先执行 startActivityForResult
2.然后 onActivityResult
3.接着 Displayed inCallActiviy

??大家可能会奇怪,不是应该inCallActiviy结束了才到 onActivityResult的吗?

我猜测,其实中途还启动了别的ActivityA,然后A再启动 inCallActiviy

后来打log,证实了我的猜测

04-25 16:09:39.677 1281-2077/? I/ActivityManager: START u0 {act=android.intent.action.CALL dat=tel:xxxxxxxxxxx cmp=com.android.server.telecom/.components.UserCallActivity} from uid 10288 on display 0

04-25 16:09:40.213 1281-2077/? I/ActivityManager: START u0 {act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.incallui/.InCallActivity (has extras)} from uid 10012 on display 0
04-25 16:09:40.378 1281-1375/? I/ActivityManager: Displayed com.android.incallui/.InCallActivity: +146ms (total +682ms)

UserCallActivity 启动了 InCallActivity
然后 UserCallActivity结束自己,调用 onActivityResult

Android呼出电话流程(原)

一、应用层的流程 1.1、拨号盘初步处理 [java] view plain copy @DialpadFragment.java   publ...
  • omnispace
  • omnispace
  • 2017年04月20日 15:45
  • 1037

去电流程分析---之一

1,去电流程分析 1.1 app dialer 拨号盘界面有关拨号的部分由DialpadFragment.java实现,无论是单卡还是双卡,当点击拨号按键时,最后都会调用 handleDialB...
  • u012439416
  • u012439416
  • 2017年08月13日 19:38
  • 169

activiti5 流程复用技术 callActivity

定义:当流程执行到callActivity,会创建一个新分支,它是到达调用节点的流程的分支。 这个分支会用来执行子流程,默认创建并行子流程,就像一个普通的流程。 上级流程会等待子流程完成,然后才会继续...
  • u011439012
  • u011439012
  • 2013年08月05日 17:42
  • 5294

Android 4.0系统打电话和接电话系统流程时序图详解

  • 2012年11月07日 16:28
  • 433KB
  • 下载

Android电话拨打流程源码分析

前面分析了电话拨号界面及电话呼叫界面,由于Android的电话Phone设计的很复杂,因此先从UI层入手分析。想要了解Android的电话拨号UI,请查看Android电话拨号UI分析,电话拨号UI在...
  • kevinx_xu
  • kevinx_xu
  • 2013年09月20日 13:21
  • 22494

一步步教你如何使用Android自定义权限。

在Android开发的过程中我们少不了要与权限打交道,在这过程中我们自然会想:为什么有些操作需要权限,有些操作不需要呢?系统是怎么配置操作所需要的权限呢?带着这些问题,我们来分析一个常见的操作——打电...
  • weixin_37077539
  • weixin_37077539
  • 2017年02月21日 12:28
  • 1590

android N 拨打电话流程(MO)

本流程图基于MTK平台 Android N,拨打的普通电话,本流程只作为沟通学习使用整体流程图流程中部分重点知识packages-apps目录 dialer应用的DialpadFragment.onC...
  • michael_yt
  • michael_yt
  • 2016年12月24日 11:43
  • 3557

Android电话拨打流程源码分析

Android电话拨打流程源码分析 目录[-] 1.拨号流程 2.拨号界面显示 前面分析了电话拨号界面及电话呼叫界面,由于Android的电话Phone设计...
  • csh86277516
  • csh86277516
  • 2016年06月06日 11:03
  • 1427

Android5.1 Telephony流程分析——拨打电话流程(MO CALL)

本文代码以MTK平台Android 5.1为分析对象,与Google原生AOSP有些许差异,请读者知悉。 此图主要是根据Android源代码拨打电话流程来绘制,记录了电话拨打的主要过程: ...
  • canghai1129
  • canghai1129
  • 2015年08月29日 11:23
  • 2461

android sip通话实现流程分析

sip协议的核心是SipService,它的注册与一般服务的注册不同,绝大多数Service都是之间在SysetmServer中进行注册,而SipService是在TeleService apk中注册...
  • zhanxiaoqi
  • zhanxiaoqi
  • 2017年03月29日 16:03
  • 2135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 打电话 流程
举报原因:
原因补充:

(最多只允许输入30个字)