Android編程中號碼匹配位數(shù)修改的方法
本文實例講述了Android編程中號碼匹配位數(shù)修改的方法。分享給大家供大家參考,具體如下:
Android2.1上默認的號碼匹配位數(shù)是7位,也就是說從右向左算起,如果兩個號碼有7位是匹配的,那么就認為是相同的號碼,如+86 1234567和01234567是相同的號碼;所以判斷兩個號碼是否匹配,簡單的用”==”是不行的。
安卓在Sqlite層新增了函數(shù)phone_numbers_equal用于號碼匹配的判斷,這個函數(shù)是數(shù)據(jù)庫級的,對應的SQL語句是PHONE_NUMBERS_EQUAL,android將該函數(shù)以2個參數(shù)和3個參數(shù)的形式注冊到sqlite數(shù)據(jù)庫里,2個參數(shù)的情況無非就是號碼A和號碼B,3個參數(shù)則多了一個bool變量,用來指示是否使用嚴格匹配,這個嚴格匹配是專門給泰國用的,看來泰國的號碼規(guī)則比較特別,而在我們國家,這個變量一般情況下都是0了。
進入正題,修改android的號碼匹配位數(shù),其實很簡單,修改OldPhoneNumberUtils.cpp文件中的最小匹配位數(shù)為想要的數(shù)字即可,該數(shù)字在函數(shù)phone_number_compare_loose函數(shù)中使用,這個函數(shù)其實就是號碼匹配的真正函數(shù),文件位置:external\sqlite\android
static int MIN_MATCH = 7; //修改成你想要的數(shù)字
在framwork層還有個一樣的java函數(shù)實現(xiàn),compareLoosely(A,B),framewoeks\base\telephony\java\android\telephony\PhoneNumberUtils.java,其中使用到的MIN_MATCH同樣需要修改。
【注】:2.1上 phone_number_compare_loose 和 compareLoosely函數(shù)的實現(xiàn)里面少了幾句代碼,算是BUG吧,會影響英文狀態(tài)下6位長度的號碼的匹配
希望本文所述對大家Android程序設計有所幫助。
相關文章
Fultter NestedScrollView實現(xiàn)吸頂效果以及遇到問題解析
這篇文章主要為大家介紹了Fultter NestedScrollView實現(xiàn)吸頂效果以及遇到問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Android用 Mob 實現(xiàn)發(fā)送短信驗證碼實例
這篇文章主要介紹了Android用 Mob 實現(xiàn)發(fā)送短信驗證碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Android開發(fā)教程之shape和selector的結合使用
shape和selector是Android UI設計中經(jīng)常用到的,比如我們要自定義一個圓角Button,點擊Button有些效果的變化,就要用到shape和selector,接下來通過本文給大家介紹Android開發(fā)教程之shape和selector的結合使用,感興趣的朋友一起學習吧2016-01-01Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程
SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。這篇文章主要介紹了Android Studio 通過登錄功能介紹SQLite數(shù)據(jù)庫的使用流程,需要的朋友可以參考下2018-09-09