android:在接听时将呼叫电话放在后台

时间:2013-02-13 16:21:31

标签: android phone-call

我正在开发一个Android应用程序,它有一个按钮,可以在点击时启动通话电话。

我想检测通话电话何时接听,并自动将本机电话应用程序置于后台并再次显示我的应用程序。同时,通话电话在后台运行。

当您点击智能手机的后退按钮或在通话电话正在进行时手动打开我的应用程序时,结果必须如此。但这应该在不按任何按钮的情况下自动完成。

我知道当呼叫状态响铃,摘机或空闲时,我已经呼叫听众做某事,但问题是将呼叫应用程序放在应用程序的后台。

序列:

  1. 用户点击我的应用中的按钮以启动原生电话应用(Android)。
  2. 电话开始(通话状态:响铃)。
  3. 电话摘机(通话状态:摘机)。
  4. 自动,我的应用程序检测到它并将本机手机应用程序置于后台并将我的应用程序置于前台。
  5. 是否有可能以及如何做到这一点?

2 个答案:

答案 0 :(得分:0)

创建后台服务并实现BroadcastReceivers以侦听调用状态触发器。

答案 1 :(得分:0)

您可以在使用“活动开始”接听电话后将应用置于前台。

Intent i = getBaseContext().getPackageManager()
                        .getLaunchIntentForPackage(
                                getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

现在的问题是,已启动的活动将是一项新活动(它将清除所有以前的活动 - 如果没有这些标记,它将不会从通话屏幕返回)。 我不知道如何才能真正回到已经在后台工作的活动。