- 浏览: 2203672 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
所需的包:carrier-1.75.jar 、geocoder-2.85.jar 、libphonenumber-8.8.8.jar 、prefixmapper-2.85.jar
对象:
代码实现和测试:
测试结果:
对象:
public class PhoneModel { /** 省份名称 */ private String provinceName; /** 城市名称 */ private String cityName; /** 运营商:移动/电信/联通 */ private String carrier; /** * 省份名称 * * @return 获取provinceName属性值 */ public String getProvinceName() { return provinceName; } /** * 省份名称 * * @param provinceName * 设置 provinceName 属性值为参数值 provinceName */ public void setProvinceName(String provinceName) { this.provinceName = provinceName; } /** * 城市名称 * * @return 获取cityName属性值 */ public String getCityName() { return cityName; } /** * 城市名称 * * @param cityName * 设置 cityName 属性值为参数值 cityName */ public void setCityName(String cityName) { this.cityName = cityName; } /** * 运营商:移动/电信/联通 * * @return 获取carrier属性值 */ public String getCarrier() { return carrier; } /** * 运营商:移动/电信/联通 * * @param carrier * 设置 carrier 属性值为参数值 carrier */ public void setCarrier(String carrier) { this.carrier = carrier; } }
代码实现和测试:
import java.util.Locale; import com.csg.statistics.bean.PhoneModel; 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; /** * 手机号归属地查询 * jar依赖:com.googlecode.libphonenumber(Libphonenumber、Geocoder、Prefixmapper * 、Carrier) pom依赖:http://mvnrepository.com/search?q=libphonenumber * 项目地址:https://github.com/googlei18n/libphonenumber * */ public class PhoneUtil { /** 直辖市 */ private final static String[] MUNICIPALITY = { "北京市", "天津市", "上海市", "重庆市" }; /** 自治区 */ private final static String[] AUTONOMOUS_REGION = { "新疆", "内蒙古", "西藏", "宁夏", "广西" }; private static PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil .getInstance(); /** 提供与电话号码相关的运营商信息 */ private static PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper .getInstance(); /** 提供与电话号码有关的地理信息 */ private static PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder .getInstance(); /** 中国大陆区区号 */ private final static int COUNTRY_CODE = 86; /** * 根据手机号 判断手机号是否有效 * * @param phoneNumber * 手机号码 * @return true-有效 false-无效 */ public static boolean checkPhoneNumber(String phoneNumber) { long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(COUNTRY_CODE); pn.setNationalNumber(phone); return phoneNumberUtil.isValidNumber(pn); } /** * 根据手机号 判断手机运营商 * * @param phoneNumber * 手机号码 * @return 如:广东省广州市移动 */ public static String getCarrier(String phoneNumber) { long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(COUNTRY_CODE); pn.setNationalNumber(phone); // 返回结果只有英文,自己转成成中文 String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH); String carrierZh = ""; switch (carrierEn) { case "China Mobile": carrierZh += "移动"; break; case "China Unicom": carrierZh += "联通"; break; case "China Telecom": carrierZh += "电信"; break; default: break; } return carrierZh; } /** * 根据手机号 获取手机归属地 * * @param phoneNumber * 手机号码 * @return 如:广东省广州市 */ public static String getGeo(String phoneNumber) { long phone = Long.parseLong(phoneNumber); PhoneNumber pn = new PhoneNumber(); pn.setCountryCode(COUNTRY_CODE); pn.setNationalNumber(phone); return geocoder.getDescriptionForNumber(pn, Locale.CHINESE); } /** * 根据手机号 获取手机信息模型 * * <pre> * 若返回值为null,则说明该号码无效 * </pre> * * @param phoneNumber * 手机号码 * @return 手机信息模型PhoneModel */ public static PhoneModel getPhoneModel(String phoneNumber) { if (checkPhoneNumber(phoneNumber)) { String geo = getGeo(phoneNumber); PhoneModel phoneModel = new PhoneModel(); String carrier = getCarrier(phoneNumber); phoneModel.setCarrier(carrier); // 直辖市 for (String val : MUNICIPALITY) { if (geo.equals(val)) { phoneModel.setProvinceName(val.replace("市", "")); phoneModel.setCityName(val); return phoneModel; } } // 自治区 for (String val : AUTONOMOUS_REGION) { if (geo.startsWith(val)) { phoneModel.setProvinceName(val); phoneModel.setCityName(geo.replace(val, "")); return phoneModel; } } // 其它 String[] splitArr = geo.split("省"); if (splitArr != null && splitArr.length == 2) { phoneModel.setProvinceName(splitArr[0]); phoneModel.setCityName(splitArr[1]); return phoneModel; } } return null; } public static void main(String[] args) { PhoneModel phoneModel = PhoneUtil.getPhoneModel("13456555555"); if(phoneModel != null){ System.out.println(phoneModel.getProvinceName()); System.out.println(phoneModel.getCityName()); System.out.println(phoneModel.getCarrier()); }else{ System.err.println("该号码无效"); } } }
测试结果:
发表评论
-
小程序textarea完美填坑
2020-07-07 16:09 529相信做微信小程序的码友们都被textarea这个原生组件坑过 ... -
Nginx+Https自己敲命令生成证书
2020-05-18 09:35 955一、准备 环境:centos6.8 ... -
https证书生成环境搭建配置(基于Tomcat和Nginx)
2020-04-24 11:06 828一、基于Tomcat、JDK内置密钥工具: 1、生成服务端证 ... -
史上最强Tomcat8性能优化
2019-11-01 21:41 911授人以鱼不如授人以渔 ... -
SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问
2019-10-07 09:13 5661.使用jdk自带的 keytools 创建证书 打开cmd ... -
Spring Boot工程集成全局唯一ID生成器 UidGenerator
2019-09-16 09:04 862概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础 ... -
CentOS7下Redis的安装与使用
2019-08-17 11:45 614一、手动安装过程 1、准备工作(安装gcc依赖) yum ... -
Nginx与tomcat组合的简单使用
2019-08-17 10:05 445配置tomcat跳转 请求http出现400的时候在这里配置 ... -
linux下lvs+keepalived安装配置
2019-07-10 14:20 466keepalived主机:192.168.174. ... -
使用Docker搭建Tomcat运行环境
2019-02-08 21:32 4951 准备宿主系统 准备一 ... -
Netty笔记-GlobalEventExecutor
2019-02-06 23:00 6441.概念 /** * Single-thread si ... -
Netty4转发服务的实现方案
2019-02-06 15:03 1147如果用Netty做转发服务(不需要同步应答),Netty中有一 ... -
基于Netty4的HttpServer和HttpClient的简单实现
2018-10-17 20:02 701Http 消息格式: Http request: Met ... -
javafx : 支持使用微调(spinner)控制的数字的文本框(NemberTextField)
2018-10-16 00:00 1100最近花了一些时间学习javaFX, 要更深入地理解新GUI包, ... -
我的Java(定制你的Java/JavaFX Runtime)
2018-10-12 23:29 683最新的JDK 11发布了,撒花 新版本的JDK终于有了ope ... -
javaFX的几个新特性,让swing彻底过时
2018-10-12 22:42 671首先声明,Java的GUI曾经 ... -
mac os系统用install4j把jar包生成app
2018-10-05 23:02 1440install4j有windows版也有mac版 mac电脑 ... -
JavaFX Alert对话框
2018-10-05 22:01 23831. 标准对话框 消息对话框 Alert alert = ... -
IDEA Properties中文unicode转码问题
2017-02-17 19:54 1051摘要: 如何让IDEA的properties中的中文进行uni ... -
spring 3中新增的@value注解
2016-11-01 09:32 643在spring 3.0中,可以通过使用@value,对一些如x ...
相关推荐
可以通过在项目中添加此 form的代码,查询号码归属地
《JAVA实现手机号码归属地查询项目详解》 手机号码归属地查询是信息技术领域常见的功能,尤其是在移动通信服务、市场营销和数据分析等行业中。本项目利用JAVA编程语言,旨在为用户提供便捷的手机号码归属地查询服务...
本项目以Java编程语言为核心,实现了对手机号码归属地的查询功能。以下是对这一技术的详细阐述: 首先,我们要理解手机归属地查询的基本原理。通常,手机运营商会为每个手机号分配一个特定的区号和网络代码,这些...
在IT行业中,手机号归属地查询是一项常见的需求,尤其在安全验证、数据分析等领域。这个"手机号归属地查询JAVA...通过这个工具,开发者不仅可以快速实现手机号码归属地查询功能,还可以深入了解相关技术的实现细节。
在IT行业中,手机号码归属地查询是一项常见的服务,它能够帮助用户了解特定手机号码的注册地或运营商信息。这项服务通常基于Web Service技术实现,它允许不同系统间通过网络进行数据交互。以下是对这一主题的详细...
java手机号归属地查询所需的包,具体maven依赖地址http://mvnrepository.com/
3. **处理请求参数**:将手机号码归属地查询的请求参数,如手机号码,封装到请求体或者URL中。如果使用POST请求,数据通常会被放在请求体里;如果是GET请求,这些信息会添加到URL的查询字符串中。 4. **签名与加密*...
机号码归属地查询程序,实现输入手机号码后,先从数据库中查询信息,若数据库中没有该号码信息,程序进入相应的查询阶段,查询手机号码的归属地(运营商,手机归属地),并且将信息存入到数据库中,并且更新数据库。...
手机号码归属地查询软件是一种常见的实用工具,它能够帮助用户获取特定手机号码的所属地信息。这类软件在日常生活中有着广泛的应用,例如帮助用户识别未知来电、防止骚扰电话或者进行市场营销数据分析。开源性质的...
《Android手机号码归属地查询与ksoap2解析技术详解》 在移动通信领域,了解一个手机号码的归属地是常见的需求,尤其对于开发者而言,构建一个Android应用来实现这一功能可以提供用户友好的服务。本篇文章将深入探讨...
标题中的“三大运营商手机号码归属地查询jar”指的是一个Java应用程序,它允许用户查询中国移动、中国联通和中国电信这三大中国运营商的手机号码归属地信息。这个程序可能是为了帮助个人或企业了解电话号码的来源,...
在IT行业中,手机号码归属地查询是一项常见的服务,它能够帮助用户识别来电号码的来源,以便于辨别骚扰电话或是确认重要联系人的地理位置。本项目主要涉及的是利用编程技术和数据库技术来实现这一功能,具体使用了...
Java/S40 适用机型:诺基亚 7610S; 7510a; 7310c; 7070; 6103; 5000; 3120c; 2680s; 2600c; 1680c; 5220xm; 3600s; 7360; 7380; 6070; 8800 SE; 5300; 6088; 8800 Sirocco; 6086; 8600 Luna; 3500c; 7900; 6131i; ...
本示例是关于“百度API手机号码归属地查询demo”,它提供了一个功能,即通过百度的API获取中国手机号码的归属地信息。这个功能在很多应用场景下都非常有用,比如数据分析、市场营销或者客户服务等,可以帮助企业了解...
在Android平台上实现手机号码归属地查询,涉及到的关键技术主要包括数据库操作、网络请求和数据解析。以下将详细阐述这些知识点。 1. **Android数据库操作**: Android系统支持SQLite数据库,这是轻量级的关系型...
手机号码归属地数据库是一种用于查询和分析手机号码所属地信息的数据库系统,它包含了大量手机号码与它们对应的城市、区县、运营商等详细信息。在IT行业中,这种数据库通常被用于电话营销、客户服务、欺诈检测等多种...
【手机号码归属地查询系统】是一款基于Java Web技术开发的应用,主要用于帮助用户查询手机号码的归属地信息。在信息技术日益发达的今天,这样的系统对于个人和企业来说具有很高的实用价值,能够快速定位电话号码的...
填入手机号码,获取手机号码归属地
Java获取手机号码归属地的实现 Java获取手机号码归属地的实现是指通过Java语言获取手机号码的归属地信息,包括手机号码的国家代码、地区代码、运营商信息等。这种实现对发送短信、电话营销、客户关系管理等业务具有...