<TEL_UNICOM>

130,131,132,155,156,185,186,145,176

</TEL_UNICOM>

133,153,180,181,189,1700,177

写一个配置文件控制器

package com.suntek.mobilemeeting.config;

import java.io.InputStream;

import java.util.HashMap;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.helpers.DefaultHandler;

import android.text.TextUtils;

/**

  • 配置文件控制器 用于获取配置文件

  • @author wwj

*/

public class ConfigController {

private static ConfigController instance;

public static ConfigController getInstance() {

if (instance == null) {

synchronized (ConfigController.class) {

if (instance == null) {

instance = new ConfigController();

}

}

}

return instance;

}

public ConfigController() {

InputStream input = getClass().getResourceAsStream(

“/res/raw/config.xml”);

try {

config = new ConfigParser(input).getResult();

} catch (Exception e) {

config = new HashMap<String, String>();

e.printStackTrace();

}

}

private HashMap<String, String> config;

public String get(String key) {

return config.get(key);

}

/**

  • 获取/res/raw/config.xml中的配置

  • @param key

  •        配置名
    
  • @param failedValue

  •        获取配置失败时的取值:没有配置,或者配置不为boolean型
    

*/

public boolean get(String key, boolean failedValue) {

String stringValue = config.get(key);

if (TextUtils.isEmpty(stringValue)

|| !(“true”.equalsIgnoreCase(stringValue) || “false”

.equalsIgnoreCase(stringValue))) {

return failedValue;

} else {

return Boolean.parseBoolean(stringValue);

}

}

class ConfigParser extends DefaultHandler {

private StringBuffer accumulator;

private HashMap<String, String> result;

public ConfigParser(InputStream input) throws Exception {

SAXParserFactory factory = SAXParserFactory.newInstance();

SAXParser parser = factory.newSAXParser();

parser.parse(input, this);

}

public void characters(char buffer[], int start, int length) {

accumulator.append(buffer, start, length);

}

public void endDocument() throws SAXException {

super.endDocument();

}

public void endElement(String uri, String localName, String qName)

throws SAXException {

super.endElement(uri, localName, qName);

if (!“config”.equals(localName)) { // “config” 是根元素

String key = localName;

String value = accumulator.toString();

result.put(key, value);

}

}

public void startDocument() throws SAXException {

super.startDocument();

accumulator = new StringBuffer();

result = new HashMap<String, String>();

}

public void startElement(String uri, String localName, String qName,

Attributes attributes) throws SAXException {

accumulator.setLength(0);

}

public HashMap<String, String> getResult() {

return result;

}

}

}

写一个常量类

package com.suntek.mobilemeeting.interfaces;

import com.suntek.mobilemeeting.config.ConfigController;

/**

  • 常量类

  • @author wwj

*/

public interface Const {

String TEL_MOBILE = ConfigController.getInstance().get(“TEL_MOBILE”); // 移动的号码段

String TEL_UNICOM = ConfigController.getInstance().get(“TEL_UNICOM”); // 联通的号码段

String TELECOM = ConfigController.getInstance().get(“TELECOM”); // 电信的号码段

}

判断运营商的方法

/**

  • Const为常量类或接口

  • String TEL_MOBILE = config.get(“TEL_MOBILE”, “134,135,136,137,138,139,147,150,151,152,157,158,159,182,183,184,187,188”); //移动的号码段

结尾

最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

高级UI,自定义View

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。

不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

[外链图片转存中…(img-j7C5Ynvw-1643878314431)]

高级UI,自定义View

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。

不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

[外链图片转存中…(img-YXpDgJPr-1643878314432)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

Android通讯录开发之获取运营商号码段(移动、联通,微信小程序的事件处理相关推荐

  1. Android通讯录开发之获取运营商号码段(移动、联通、电信)

    本篇博客是自己在开发时用到的一个点,获取运营商的号码段,截至2013年12月30日,三大运营商的号码段增加了不少,还出现了1700这样4位的号码段.号码段有什么用呢?每个运营商都有不同的号码段,比如1 ...

  2. Android通讯录开发之获取运营商号码段(移动、联通,android选择题题库

    133,153,180,181,189,1700,177 写一个配置文件控制器 package com.suntek.mobilemeeting.config; import java.io.Inpu ...

  3. android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商

    android关闭应用及获取运营商ISP 1.AndroidManifest.xml <?xml version="1.0" encoding="utf-8&quo ...

  4. 三大电信运营商号码段

    为什么80%的码农都做不了架构师?>>>    最新三大电信运营商号码段部分: 中国移动号段 134.135.136.137.138.139. 147.150.151.152.157 ...

  5. 【小程序云开发】不用后端也能构建完整的微信小程序

    文章目录 什么是微信小程序云函数 云数据库 HTTP 云函数 定时触发云函数 总结 写在最后 什么是微信小程序云函数 微信小程序云函数是通过微信小程序云开发提供的一种服务器端代码,用于在小程序中进行服 ...

  6. Node.js+MySQL开发的B2C商城系统源码+数据库(微信小程序端+服务端),界面高仿网易严选商城

    下载地址:Node.js+MySQL开发的B2C商城系统源码+数据库(微信小程序端+服务端) NideShop商城(微信小程序端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易 ...

  7. Taro 小程序开发大型实战(七):尝鲜微信小程序云(下篇)

    欢迎继续阅读<Taro 小程序开发大型实战>系列,前情回顾: 熟悉的 React,熟悉的 Hooks:我们用 React 和 Hooks 实现了一个非常简单的添加帖子的原型 多页面跳转和 ...

  8. Android开发经验谈:微信小程序的事件处理,灵魂拷问

    前言 春招已经接近尾声了,不知道各位小伙伴有没有找到自己心仪的工作呢. 笔者前几天内推刚刚收获了腾讯高级开发岗的offer,得益于内推朋友面试时的面试经验,照着他给的方向复习刷题,顺利的通过了面试.在 ...

  9. Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台

    由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...

最新文章

  1. Facebook推出VR版远程办公应用,白板共享、手势/键盘追踪等技能解锁沉浸式开会体验...
  2. 方式四:修改模块导入段来拦截API
  3. 树莓派slam_SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——6.树莓派USB与tty串口号绑定...
  4. boost::fibers模块实现异步调度的测试程序
  5. ARM中的RO、RW和ZI DATA
  6. echarts折线图相关
  7. php 留言板分页显示,php有分页的留言板,留言成功后怎么返回当前页?
  8. 宝宝退烧的天然方子(老中医的推荐)
  9. pySpark | pySpark.Dataframe使用的坑 与 经历
  10. mysql 截取 效率,MySQL 随机函数获取数据速度和效率分析
  11. OA审批工作流设计器实现
  12. python生成的exe反编译
  13. 免费的文档翻译教程;免费将很长的文档英文翻译成中文
  14. 云呐|RFID资产盘点系统带审批(rfid库存盘点功能)
  15. THE ORDER OF MASS
  16. SpringBoot整合elasticsearch (java整合es)
  17. 对微机用户来说 为了防止计算机意外故障,对于微机用户来说,为了防止计算机意外故障而丢失重要数据,对重要数据应定期进行备份。下列移动存储器中,最不常用的一种是...
  18. Cocos2d-x 3.X, Android Studio版添加广点通广告平台
  19. 自适应控制设计(二)
  20. 路面附着系数估计_无迹 扩展卡尔曼滤波(UKF/EKF) 采用无迹/扩展卡尔曼滤波UKF进行路面附着系数估计,可实现“不变路面,对接路面和对开路面”等工况的路面附着系数估计

热门文章

  1. 05-Elasticsearch-DSL高级检索[分页, 分词, 权重, 多条件, 过滤, 排序, 关键词高亮, 深度分页, 滚动搜索, 批量Mget]...
  2. 十分钟万台服务器部署能力,探秘阿里双十一弹性扩容背后的技术故事
  3. php中怎么给文字加颜色,PHP水印类,支持添加图片、文字、填充颜色区域的实现...
  4. resnet 20 和resnet 56
  5. 正点原子linux资料pdf,正点原子阿尔法linux开发板光盘a盘4、参考devicetree 2.pdf
  6. 技术研究项目评价指标及评分标准表V3.0
  7. WIN7系统安装VisualSVN Server
  8. cond_example代码生成器构造全过程
  9. 政策变局催生进口车商三大变化
  10. 疑论:对阿里巴巴的投资该歇手了