2013-09-23 25 views
0

我想要做的是让用户从应用程序调用一个数字。我使用下面的代码来调用这个数字。但是,当我在调用过程中按下返回按钮时,它会把我的主页而不是返回到调用应用程序的应用程序的前一个屏幕中。请看看代码,如果有人有解决方案,请帮助我。在主屏幕上按下后退按钮将用户指向主页。任何解决方案

PhoneArguments callArgs = new PhoneArguments(
    PhoneArguments.ARG_CALL, "+27 83 111 1234"); 
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs); 

任何帮助,将不胜感激。谢谢。

+0

那是因为您正在调用系统功能。如果断开呼叫然后按下后退按钮,它将转到您调用应用程序的应用程序的上一个屏幕。 – Signare

+1

@SureshSharma - 你的代码在调用之后做了什么?我认为这是调用后的代码可能会退出应用程序或将应用程序推送到后台。 –

+1

@Signare - 尝试使用代码,我认为您会发现它会将电话屏幕推到调用应用程序的顶部,当调用的电话屏幕从堆栈中移除时,将看到调用屏幕。 –

回答

0

你可以使用PhoneListener当通话结束检测,然后尝试把你的应用程序中使用这前景:

Application.getApplication().requestForeground(); 

不知道这是怎么回事工作,虽然,因为我不知道如果电话听众执行的“应用程序”是电话应用程序本身。我认为不是,但如果是这种情况,您可以从电话监听器回调中发送一个全局事件并将其捕获到您的应用中,从而可以将其自动置于前台。

+1

您应该假设电话监听器不会在您的应用程序中执行,因此全局事件是正确的方法。但是,这表示,这不应该需要。包含在原始问题中的调用代码将手机屏幕推到当前应用程序屏幕的顶部。如果调用应用程序刚刚执行了我们看到的代码,那么当电话结束时,关闭电话屏幕将使用户返回调用应用程序。尝试一下。 –

+0

@PeterStrange是的,它可能是矫枉过正,但你绝不能100%确定没有其他应用程序将自己置于你的屏幕和手机应用程序之间。无论如何,我可能是错的,但我认为用户必须挂起并手动关闭手机应用才能返回(两个动作)。我认为这个问题是要求一个更加集成的解决方案,他可能会试图将电话显示为他的应用程序的一部分。 –

相关问题