J2ME:手机归属地查询软件
最近在网上下载了一个"猫头鹰"手机归属地查询软件,界面太繁杂,看着很不爽,于是自己也做了一个.速度也有明显的改进:
原版的软件一次读取整个文件,我这个一次只读取一组,比较完后再读取!占用内存相对较少!!!!!!
在我的Nokia5300上测试通过
- import java.io.*;
- import javax.microedition.midlet.*;
- import javax.microedition.lcdui.*;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import javax.microedition.lcdui.Command;
- import javax.microedition.lcdui.CommandListener;
- import javax.microedition.lcdui.Display;
- import javax.microedition.lcdui.Displayable;
- import javax.microedition.midlet.MIDlet;
- import java.util.Vector;
- public class PhoneNumber extends MIDlet implements CommandListener
- {
- private Display display;
- private TextBox tb;
- private String ok="";
- private String[][] tel= { { "10", "北京", "北京" }, { "20", "广东", "广州" }, { "21", "上海", "上海" }, { "22", "天津", "天津" }, { "23", "重庆", "涪陵" }, { "23", "重庆", "黔江" }, { "23", "重庆", "万州" }, { "23", "重庆", "巫山" }, { "23", "重庆", "重庆" }, { "24", "辽宁", "沈阳" }}; //区号,省,市!只写了一部分,太长了...
- Command commit;
- Command about;
- public PhoneNumber(){
- display=Display.getDisplay(this);
- }
- public void startApp(){
- commit=new Command("查询",Command.SCREEN,1);
- about=new Command("关于",Command.SCREEN,1);
- tb=new TextBox("请在下面输入要查询的手机号:","1382728",7,TextField.NUMERIC);
- tb.addCommand(commit);
- tb.addCommand(about);
- tb.setCommandListener(this);
- display.setCurrent(tb);
- }
- public void pauseApp(){}
- public void destroyApp(boolean abc){}
- public void commandAction(Command c,Displayable s){
- if(c==commit){
- //查询
- if (this.tb.getString().length() == 7)
- query();
- else
- MsgBox("请输入手机号的前7位数!","提示");
- }
- if(c==about){
- Alert ab=new Alert("关于...");
- ab.setType(AlertType.INFO);
- ab.setTimeout(Alert.FOREVER);
- ab.setString("手机查询软件/r/n(C)2008 石磊/r/nQQ:262754413");
- display.setCurrent(ab);
- return;
- }
- }
- //执行查询
- void query()
- {
- String dq = "";
- int ext = Integer.parseInt(this.tb.getString().substring(3)); //取电话号码后面的数字
- int bef = Integer.parseInt(this.tb.getString().substring(0, 3)); //前三
- int qx = 0; //区号
- String type="UNKNOW"; //类型
- //获取号码类型
- if ((bef == 130) || (bef == 131) || (bef == 132) || (bef == 153) || (bef == 156))
- type = "中国联通GSM卡";
- else if(bef == 133)
- type = "中国联通CDMA卡";
- else
- type = "中国移动GSM卡";
- //取得数据文件路径
- //try{
- String dataFile = "/phone" + bef + ".txt"; //数据文件地址
- InputStream is = getClass().getResourceAsStream(dataFile); //输入流
- InputStreamReader r = new InputStreamReader(is); //流读取器
- int ct=0;
- String nums = "";
- while (true) {
- //一次读取一位
- int chr = 0;
- try{
- chr = r.read(); //一次读取一Byte
- }
- catch (IOException ioe) {
- MsgBox(ioe.toString(),"Read异常");
- return;
- }
- if (chr == -1) break; //如果没有可用数据则跳出
- //读取到一排就比较
- if (chr == 124)
- {
- String[] t = split(nums, ",");
- if ((ext >= Integer.parseInt(t[0])) && (ext <= Integer.parseInt(t[1])))
- {
- qx = Integer.parseInt(t[2]);
- break;
- }
- nums = "";
- }
- else
- {
- nums = nums + (char)chr;
- }
- }
- try{
- r.close();
- is.close();
- }catch(IOException ioe){}
- //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- if (qx == 0) {
- MsgBox("未知号码!","错误");
- return;
- }
- //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- for (int i = 0; i < tel.length; i++) {
- if (Integer.parseInt(tel[i][0]) == qx) {
- dq = tel[i][1] + tel[i][2];
- break;
- }
- }
- //补0
- type = "号码:" + tb.getString() + "/r/n" + type + "/r/n"+dq+"(";
- if ((qx < 100)||(qx < 1000)) type += "0";
- type = type +qx+ ")";
- //}
- //catch(IOException err){
- // MsgBox(err.toString(), "错误");
- // return;
- //}
- //显示结果
- MsgBox(type, "查询结果");
- return;
- }
- //消息框
- void MsgBox(String msg,String title) {
- Alert ab = new Alert(title);
- ab.setType(AlertType.CONFIRMATION);
- ab.setTimeout(Alert.FOREVER);
- ab.setString(msg);
- display.setCurrent(ab);
- }
- //字符分割
- public static String[] split(String original,String regex) {
- int startIndex = 0;
- Vector v = new Vector();
- String[] str = null;
- int index = 0;
- startIndex = original.indexOf(regex);
- while(startIndex < original.length() && startIndex != -1)
- {
- String temp = original.substring(index,startIndex);
- v.addElement(temp);
- index = startIndex + regex.length();
- startIndex = original.indexOf(regex,startIndex + regex.length());
- }
- v.addElement(original.substring(index + 1 - regex.length()));
- str = new String[v.size()];
- for(int i=0;i<v.size();i++)
- str[i] =(String)v.elementAt(i);
- return str;
- }
- }
J2ME:手机归属地查询软件相关推荐
- [iPhone-APP]手机归属地查询软件
无聊.周末写几个APP玩,终于在上午把网络折腾好了.5块钱的8139网卡让我时常能在MAC下上网. 图标简陋啊... 技术要点: 1.组一个SOAP包.用NLURLConnection连接. 2.找一 ...
- Android手机归属地查询工具
在Android应用开发中,经常需要与网络上的服务端的程序(J2EE或者.NET等应用)进行通信.交互.例如"优酷.土豆"的android客户端,每天访问都会有最新的视频资讯,那些 ...
- wp7 手机归属地查询
ps:之前一直看卤面网,看博客园里强人关于wp7开发介绍等也快大半个月了,不得不说实践是检验真理的唯一标准,还得自己动手做,这个是我做的第一个wp7小程序:手机归属地查询.不废话,先上图: 此应用拥有 ...
- JavaScript学习:利用第三方接口做手机归属地查询
逆战学习 整理一下关于怎么获取接口数据,然后渲染数据到页面上 第三方接口地址:手机归属地查询 一.思路和大致需要用到的知识点 1.body标签里准备一个input和button,用一个盒子包起来,一个 ...
- HTML5第9节课堂笔记(初探mui,制作手机归属地查询)
手机MUI程序 ,利用它的ajax方法访问baidu的API http://apistore.baidu.com/apiworks/servicedetail/794.html http://dev. ...
- 身份证归属地查询软件(离线版)
这是一款使用C#语言写的软件,可以实现身份证归属地离线查询功能,目前源代码已经开源至码云,github平台,效果如下: 当输入前两位数字时,可查询到相关省:当输入前四位数字时,可查询到相关市:当输入前 ...
- php实现手机归属地的查询、,PHP实现手机归属地查询API接口实现代码
我们经常会开发一些行业分类的网站,这个时候我们需要显示手机归属这个功能,这个时候我们找了很多API接口的地址,但是都不如人意,那么PHP实现手机归属地查询API接口实现代码,大家清楚吗?一起去看看爱站 ...
- 实现手机归属地查询页面
实现手机归属地查询页面 看图!!! 页面的实现: 使用Ajax异步请求向服务器发送请求,请求手机号归属地查询,然后动态生成列表,显示手机号码段,卡号归属地,卡的类型等信息,代码如下: <!DOC ...
- 12、手机归属地查询API接口,免费好用
1.前言 手机归属地查询接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了1个小接口,能实现查询手机号的归属地,可用于粗略估算注册用户的所在地. 查看接口完整信息:https:// ...
最新文章
- kafka官方文档学习笔记2--QuickStart
- CentOS7和CentOS6怎样开启MySQL远程访问
- 分析约瑟夫问题(循环单链表)
- 更改Android Studio中AVD的默认路径
- How to download ABAP development Tool from Fiori Launchpad
- webservice系统学习笔记9-使用契约优先的方式的一个服务端demo(隐式传Header信息)...
- 清空计算机网络缓存,【缓存清理工具】缓存清理软件_电脑缓存清理软件【最新】-太平洋电脑网...
- MarkDown语言
- P5068 [Ynoi2015]我回来了
- 5 QM配置-质量计划配置-编辑缺陷类型的选择集
- python async socket_Python开发中常用的标准库,这些都是你应该掌握的
- 你大爷还是你大爷!三星震撼首发折叠屏智能手机Galaxy Fold
- python和java哪个好学-Java VS Python 应该先学哪个?
- pip 指定版本安装
- Swift 类与结构体
- DBVisualizer 添加数据库JDBC驱动
- 提现php防刷,PHP简单的防刷计数器–已经图片化
- 微信小程序网络请求服务器php接口获取数据库数据信息
- element树形控件拖拽allow-drop控制
- git 删除添加的远程地址
热门文章
- 回望2016-2018,希望在2019年有所斩获!
- Kid的某些跳刺套路
- win8服务器防火墙配置文件,Win8自带防火墙吗,Win8防火墙在哪里(适用于Win8.1)?
- struct模块使用
- 【无标题】8421码,5421码,2421码,余3码之间的区别。
- 【图像语义分割】Large Kernel Maters--Improved Semantic Segmentation by Global ConvNet
- QGraphicsView图形视图框架使用(三)位移变换和图元定位
- 王杰律师出席“2009软件开发2.0技术大会”
- 无剑100SOC(wujian100)挂UART外设之④修改SDK
- 分糖果 小明从糖果盒中