package com.tec.util;
import java.util.Locale;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
public class GetProvinceAndCity {
private static PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
public static void main(String[] args) {
System.out.println(getProvince("1474859XXXX"));
}
/**
* 仅中国号码
* @param 手机号
* @return 归属地
*/
public static String getProvince(String mobile) {
PhoneNumberOfflineGeocoder phoneNumberOfflineGeocoder = PhoneNumberOfflineGeocoder.getInstance();
String language = "CN";
PhoneNumber referencePhonenumber = null;
try {
referencePhonenumber = phoneUtil.parse(mobile, language);
} catch (NumberParseException e) {
e.printStackTrace();
}
// 手机号码归属城市 city
String city = phoneNumberOfflineGeocoder.getDescriptionForNumber(referencePhonenumber, Locale.CHINA);
return city;
}
}
maven依赖如下
<!-- 根据手机号得到归属地 -->
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>geocoder</artifactId>
<version>2.15</version>
</dependency>
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>libphonenumber</artifactId>
<version>6.3</version>
</dependency>
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>prefixmapper</artifactId>
<version>2.15</version>
</dependency>
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>carrier</artifactId>
<version>1.5</version>
</dependency>
运行即可!!!目前还是有用的喔
不过, 如果 查不到的,他会显示是空 ,有些是显示中国, 有些就有归属地, 具体看号码情况 哈,可能库有点老!