我正在開發一個Android應用程序,該應用程序接收外出呼叫事件並從中提取目的地址,取消呼叫以執行某個過程,然後重撥自動地址號碼自動無需用戶意圖。找出打出的電話是撥打電話還是撥打數據
問題:我不想處理不是真正的目的地電話地址的目的地號碼(即USSD號碼,如* 21#,它使某些運營商的某些數據請求)。 如何找出傳出目的地是電話還是來自操作員的數據請求(無需維護任何表格)?
我正在開發一個Android應用程序,該應用程序接收外出呼叫事件並從中提取目的地址,取消呼叫以執行某個過程,然後重撥自動地址號碼自動無需用戶意圖。找出打出的電話是撥打電話還是撥打數據
問題:我不想處理不是真正的目的地電話地址的目的地號碼(即USSD號碼,如* 21#,它使某些運營商的某些數據請求)。 如何找出傳出目的地是電話還是來自操作員的數據請求(無需維護任何表格)?
一種可能的方法是,以檢查是否號碼相匹配的USSD的格式:
典型的USSD消息有*後跟數字哪個 指示要執行的動作或爲參數啓動。每組 數字之間用*分隔,並且該消息以#結尾。
USSD的最大長度爲182個字符。
如果它有星號或英鎊符號,那麼它可能不是電話號碼。我相信所有USSD代碼都有英鎊符號或星號。 – Jakar 2012-03-27 09:22:27
,但一個真正的電話號碼也可以包含星號 - 一個簡短的數字,如* 4444。 – Bush 2012-03-27 10:23:19