代码改变世界

WindowsPhone获取是否进行拨电话信息[使用PhoneCallTask]

2012-05-10 21:29  王祖康  阅读(1562)  评论(8编辑  收藏  举报

首先介绍一下本篇需要解决的问题和解决思路。

开发过WindowsPhone应用程序的开发者都知道使用PhoneCallTask可以进行拨打电话,但是调用Show()方法之后,无法知道用户是否进行了拨打电话?

可以通过一种折中的办法实现获取用户是否进行了拨打电话的操作,具体思路为:

  1. 使用PhoneApplicationPage的ObscuredUnobscured事件。
  2. 当界面中有拨号界面或其他UI界面弹出时,会执行上诉两个事件。
  3. 通过监测这两个事件的执行顺序和执行次数就可以判断出是否进行拨打电话操作。

特别鸣谢:“顺手拨”软件开发者针对此问题提供解决方案思路。

下面通过具体Demo演示如何进行实现该效果的:

1.新建名为PhoneCallTaskSolution的WindowsPhone项目。

2.MainPage.xaml中添加触发按钮。如图:

3.生成相应的Button_Click事件,添加PhoneCallTask相应代码。如图:

4.在OnNavigatedTo事件中,实例化PhoneApplicationFrame对象,然后注册Obscured和obscured两个事件,具体代码如下:

5.声明一个int类型变量,标示不同UI元素覆盖MainPage页面次数。

6.实现root_Obscured和root_Unobscured方法。

总结:使用以上办法可以实现判断用户是否进行拨打电话操作。

参考文章:

  1. Windows Phone框架和页面导航概述
  2. Obscured事件和Unobscured事件;
  3. Silverlight for Windows Phone 7:应用软件生命周期与导航
  4. Application Certification Requirements for Windows Phone