Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程中號碼匹配位數修改的方法

Android編程中號碼匹配位數修改的方法

編輯:關於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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved