package com.xxpatx.os.utils; import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper; import com.google.i18n.phonenumbers.PhoneNumberUtil; import com.google.i18n.phonenumbers.Phonenumber; import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder; import java.util.Locale; public class MobileNumberUtils { private static final String TAG = "MobileNumberUtils"; private static final String LANGUAGE = "CN"; //获取手机号码运营商 public static String getCarrier(String phoneNumber) { PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance(); Phonenumber.PhoneNumber referencePhonenumber = new Phonenumber.PhoneNumber(); try { referencePhonenumber = phoneNumberUtil.parse(phoneNumber, LANGUAGE); } catch (NumberParseException e) { e.printStackTrace(); } //返回结果只有英文,自己转成成中文 String carrierEn = carrierMapper.getNameForNumber(referencePhonenumber, Locale.CHINA); // if (Locale.CHINA.getCountry().equals(Locale.getDefault().getCountry())) { // switch (carrierEn) { // case "China Mobile": // return "中国移动"; // case "China Unicom": // return "中国联通"; // case "China Telecom": // return "中国电信"; // default: // break; // } // } return carrierEn; } //获取手机号码归属地 public static String getGeo(String phoneNumber) { PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance(); Phonenumber.PhoneNumber referencePhonenumber = null; try { referencePhonenumber = phoneNumberUtil.parse(phoneNumber, LANGUAGE); //手机号码归属城市 referenceRegion return geocoder.getDescriptionForNumber(referencePhonenumber, Locale.CHINA); } catch (NumberParseException e) { e.printStackTrace(); } return "未知"; } }