2010-02-12 80 views
3

我想知道是否有電話號碼可以在撥打電話時將 轉換爲國際格式。android以國際格式轉換電話號碼

舉例來說,如果一個法國用戶(抱歉它是唯一的格式,我知道我 不會犯錯:-)嘗試與全國格式來電: 01.47.12.34.56那麼方法會把它轉換成到國際格式 像這樣:+33.1.47.12.34.56

我已經看了PhoneNumberUtils的文檔,但我不知道是否有一個方法做我想做的。

+0

我想這將是一個重複的:http://stackoverflow.com/questions/487906/java-phone-number-format-api和http://stackoverflow.com/questions/501368/phone-number- format-and-validaton-library – Macarse 2010-02-12 18:08:05

回答

0

不是數字來作爲一個字符串?

如果我沒有弄錯,使用Java的字符串方法你可以很容易地做到這一點?

因此,獲得的燈串,警察在0關閉,並添加+33

+1

但我怎樣才能以編程方式檢索國家代碼? (33只用於法國) – Arutha 2010-02-12 17:48:09

+0

啊好問題,或許使用.properties文件? – 2010-02-12 17:54:36

+2

裝滿了所有國家的代碼?? !! – Arutha 2010-02-12 18:01:27

5

舊的職位,但如果它可以幫助任何人:使用谷歌的libphonenumber圖書館做各種格式和驗證的電話號碼。在這種情況下,要轉換爲國際格式,請在同一個庫中使用類PhoneNumberUtil中的format(PhoneNumber number, PhoneNumberFormat format) api。

+1

不幸的是'libphonenumber'只有在你知道你提供的電話號碼的國家代碼時纔有用。所有根據文本生成「PhoneNumber」的「PhoneNumberUtil」方法都要求編號以+和國家代碼(例如+447771234567)開頭,或者必須具有指定編號的預期國家代碼。你會認爲'libphonenumber'能夠接受任何格式的電話號碼字符串,並嘗試識別國家代碼,但這似乎並非如此。 – Phil 2012-11-09 21:53:58

+0

@Phil,應用程序可以訪問SIM卡位置獲取國家代碼。 – 2013-04-20 15:24:18

+0

@ user908821感謝您提供的非常有用的提示。還沒有到這裏調查,所以你剛剛救了我幾個小時! – Phil 2013-04-28 17:12:03