56 lines
2.3 KiB
Java
56 lines
2.3 KiB
Java
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 "未知";
|
|
}
|
|
} |