利用com.googlecode.libphonenumber解析手机号归属地
来源:互联网 发布:淘宝爽yy插件官网 编辑:程序博客网 时间:2024/06/02 03:18
libphonenumber是一个Google开发的Common Java类库用于解析,格式化,存储和校验国际电话号码;
缺点是太新的号码无法正确识别
https://github.com/googlei18n/libphonenumber
package com.base.phone;import java.util.Locale;import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper;import com.google.i18n.phonenumbers.PhoneNumberUtil;import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;/** 代码示例*/public class PhoneUtil { private static PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); private static PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance(); private static PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance(); /** * 根据国家代码和手机号 判断手机号是否有效 * @param phoneNumber * @param countryCode * @return */ public static boolean checkPhoneNumber(String phoneNumber, Integer countryCode){ long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(countryCode); pn.setNationalNumber(phone); return phoneNumberUtil.isValidNumber(pn); } /** * 根据国家代码和手机号 判断手机运营商 * @date 2017-4-26 上午11:30:18 * @param phoneNumber * @param countryCode * @return */ public static String getCarrier(String phoneNumber, Integer countryCode){ long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(countryCode); pn.setNationalNumber(phone); //返回结果只有英文,自己转成成中文 String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH); String carrierZh = ""; carrierZh += geocoder.getDescriptionForNumber(pn, Locale.CHINESE); switch (carrierEn) { case "China Mobile": carrierZh += "移动"; break; case "China Unicom": carrierZh += "联通"; break; case "China Telecom": carrierZh += "电信"; break; default: break; } return carrierZh; } /** * * @Description: 根据国家代码和手机号 手机归属地 * @date 2017-4-26 上午11:33:18 * @param phoneNumber * @param countryCode * @return 参数 */ public static String getGeo(String phoneNumber, Integer countryCode){ long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(countryCode); pn.setNationalNumber(phone); return geocoder.getDescriptionForNumber(pn, Locale.CHINESE); } public static void main(String[] args) { System.out.println(PhoneUtil.getCarrier("159657755",86)); }}
<dependency> <groupId>com.googlecode.libphonenumber</groupId> <artifactId>geocoder</artifactId> <version>2.82</version> </dependency> <dependency> <groupId>com.googlecode.libphonenumber</groupId> <artifactId>libphonenumber</artifactId> <version>8.8.5</version> </dependency> <dependency> <groupId>com.googlecode.libphonenumber</groupId> <artifactId>prefixmapper</artifactId> <version>2.82</version> </dependency> <dependency> <groupId>com.googlecode.libphonenumber</groupId> <artifactId>carrier</artifactId> <version>1.72</version> </dependency>
0 0
- 利用com.googlecode.libphonenumber解析手机号归属地
- 利用com.googlecode.libphonenumber解析手机号归属地
- 利用com.googlecode.libphonenumber注册手机号
- 手机号归属地 libphonenumber
- 利用webservice获取所有手机号归属地
- 利用百度API查询手机号归属地
- Android libphonenumber Demo 手机号码归属地
- 手机号归属地查询
- 获取手机号归属地
- 获取手机号归属地
- 查询手机号归属地
- 根据手机号查询归属地
- PHP 判断手机号归属地
- java手机号归属地验证
- java获取手机号归属地
- 手机号段归属地数据库
- java 手机号归属地查询
- 根据手机号查询归属地
- Oracle Database DRA 不支持11gR2版本的RAC
- SyntaxError: missing : after property id
- Gradle for Android 第二篇( Build.gradle入门 )
- 解决alertView在强制横屏时的崩溃问题
- P4python sync code from perforce
- 利用com.googlecode.libphonenumber解析手机号归属地
- 中文乱码问题集
- Unity世界坐标与本地坐标的一种转换方法
- sql select into 和insert into
- Android HTTP边下边播
- JS触题生情 遍历输出
- 只编译一次头文件
- 并查集 hihocode分数调查
- 理解HTML