1. 程式人生 > >例項詳解如何實現來電攔截及攔截後的提示音

例項詳解如何實現來電攔截及攔截後的提示音

先說下幾個要點:
1. 電話攔截
這個功能大家可能都知道了,就是利用反射原理呼叫ITelephony的隱藏方法來實現。這個就不說了,在附件的程式碼裡有。

2.攔截後提示忙音/空號/已關機/已停機
這個功能其實是要用到MMI指令,具體如何設定來電轉駁的指定可以參考這裡 http://baike.baidu.com/view/206402.html?fromTaglist
在本文中我們會用到“遇忙轉移”轉移的功能。中國移動的設定方式是 **67#電話號碼#,取消方式為 ##67#。這兩個指令可以直接在手機的撥號介面輸入測試。ITelephony的endcall方法結束通話電話後,會提示電話忙。如果事前設定好了忙時轉移到一個空號/已關機/已停機的電話號碼,就會提示您撥的電話號碼是空號/已關機/已停機。

其實大家可以下載 xxx衛士看下,它設定來電拒接模式後,都是會啟動設定MMI指令的介面。然後再去“設定》通話設定》來電轉接”,看看 “佔線時轉接” 設定好的電話號碼,就可以知道空號/已關機/已停機對應的電話號碼是什麼了。

附件是演示工程檔案,有幾點要說明下:
1. 修改一下BLOCKED_NUMBER這個變數值,把它設定為你要測試攔截的電話號碼。
2. 全部功能是在一個Activity裡實現的,所以大家要先執行這個Activity,然後點選“設定來電轉駁”,設定好來電轉駁後,不要關閉這個Activity,關了就攔截不了電話了。有心的朋友可以自己去寫一個Service在後臺執行攔截功能。

已經修改為可以攔截簡訊的版本了,希望對大家有用。

程式碼地址:http://download.csdn.net/detail/xuewater/6498995