天天看點

如何判斷撥打的手機号碼及存儲的号碼是否合法?

今天通過程式要寫電話号碼到手機裡面去,但是對這個号碼規則不是太懂。上網搜尋了一下也還是沒有找到。

于是我手頭不是有mtk的代碼嘛,直接看程式裡面是怎麼判斷的不就行了。

最終找到函數mmi_phb_op_check_valid_number();對代碼進行分析發現也很簡單。

總結規律如下:

1.首先号碼裡面隻能有1234567890*#pw+,其他都是非法字元。

其中123456789×#使用是一樣的。可以出現數字的地方就可以出現”*”,”#”

2.“+”号是必須在第一位的。要麼就沒有”+”

+1334 ,合法。

23+2  ,是非法。

3.”p”, “w”必須不能為第一位字母,并且其後面不能為”*”,”#”

23p* , 非法

23p#,非法

23p3 ,合法

p就是有停頓的意思~例如你拔打:1380013800按1是國語,再按2是查話費~

你可以在電話上輸入:13800138000p1p2這樣電話接通後會直接的幫你轉1再 轉2.你就可以直接聽到話費了