編輯:關於Android編程
本文實例講述了Android編程中號碼匹配位數修改的方法。分享給大家供大家參考,具體如下:
Android2.1上默認的號碼匹配位數是7位,也就是說從右向左算起,如果兩個號碼有7位是匹配的,那麼就認為是相同的號碼,如+86 1234567和01234567是相同的號碼;所以判斷兩個號碼是否匹配,簡單的用”==”是不行的。
安卓在Sqlite層新增了函數phone_numbers_equal用於號碼匹配的判斷,這個函數是數據庫級的,對應的SQL語句是PHONE_NUMBERS_EQUAL,android將該函數以2個參數和3個參數的形式注冊到sqlite數據庫裡,2個參數的情況無非就是號碼A和號碼B,3個參數則多了一個bool變量,用來指示是否使用嚴格匹配,這個嚴格匹配是專門給泰國用的,看來泰國的號碼規則比較特別,而在我們國家,這個變量一般情況下都是0了。
進入正題,修改android的號碼匹配位數,其實很簡單,修改OldPhoneNumberUtils.cpp文件中的最小匹配位數為想要的數字即可,該數字在函數phone_number_compare_loose函數中使用,這個函數其實就是號碼匹配的真正函數,文件位置:external\sqlite\android
static int MIN_MATCH = 7; //修改成你想要的數字
在framwork層還有個一樣的java函數實現,compareLoosely(A,B),framewoeks\base\telephony\java\android\telephony\PhoneNumberUtils.java,其中使用到的MIN_MATCH同樣需要修改。
【注】:2.1上 phone_number_compare_loose 和 compareLoosely函數的實現裡面少了幾句代碼,算是BUG吧,會影響英文狀態下6位長度的號碼的匹配
希望本文所述對大家Android程序設計有所幫助。
之前寫過一篇文章《Android學習小Demo(13)Android中關於ContentObserver的使用》,在裡面利用ContentOberver去監測短信URI內
本章簡單講述下android實現自動撥號的功能,該功能利用了系統啟動的rild的服務來實現,因為rild的服務是殺不死的,所以利用這一點,可以使撥號失敗或網絡斷掉後自動重
linux 主機 android sdk安裝忽略jdk安裝忽略hudson安裝忽略 gradle安裝1:下載對應的gradle(這裡是gradle-2
本文實例講述了Android實現向Launcher添加快捷方式的方法。分享給大家供大家參考。具體如下:當我們在應用程序Launcher的桌面空白處長按觸摸時,會出現一個對