首先介紹一下本篇需要解決的問題和解決思路。
開發過WindowsPhone應用程序的開發者都知道使用PhoneCallTask可以進行撥打電話,但是調用Show()方法之后,無法知道用戶是否進行了撥打電話?
可以通過一種折中的辦法實現獲取用戶是否進行了撥打電話的操作,具體思路為:
- 使用PhoneApplicationPage的Obscured和Unobscured事件。
- 當界面中有撥號界面或其他UI界面彈出時,會執行上訴兩個事件。
- 通過監測這兩個事件的執行順序和執行次數就可以判斷出是否進行撥打電話操作。
特別鳴謝:“順手撥”軟件開發者針對此問題提供解決方案思路。
下面通過具體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方法。

總結:使用以上辦法可以實現判斷用戶是否進行撥打電話操作。
參考文章:
