33号码归属地的完善

在前面的代码中,输入四位的号码:出现错误:


下面进行处理:

package com.ustc.mobilemanager.db.dao;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class NumberAddressQueryUtils {

	private static String path = "data/data/com.ustc.mobilemanager/files/address.db";

	/**
	 * 
	 * 传一个号码进来,查询号码的归属地
	 * 
	 * @param number
	 * @return
	 */
	public static String queryNumber(String number) {
		String address = number;

		// path 把数据库拷贝到data/data/包名/files/address.db

		SQLiteDatabase database = SQLiteDatabase.openDatabase(path, null,
				SQLiteDatabase.OPEN_READONLY);

		// 手机号码的正则表达式

		if (number.matches("^1[34568]\\d{9}$")) {
			// 手机号码

			Cursor cursor = database
					.rawQuery(
							"select location from data2 where id = (select outkey from data1 where id = ?)",
							new String[] { number.substring(0, 7) });
			while (cursor.moveToNext()) {
				String location = cursor.getString(0);
				address = location;
			}
			cursor.close();

		} else {

			// 其他的电话号码
			switch (number.length()) {
			case 3:
				// 110 120 119等等
				address = "特殊号码:匪警号码";
				break;
			case 4:
				address = "模拟器";
				break;
			case 5:
				// 10086
				address = "客户号码";
				break;
			case 7:
				//
				address = "本地号码";
				break;
			case 8:
				//
				address = "本地号码";
				break;

			default:
				// 处理长途电话

				if (number.length() > 10 && number.startsWith("0")) {
					// 010--->10    010-59790386
					Cursor cursor = database.rawQuery(
							"select location from data2 where area = ?",
							new String[] { number.substring(1, 3) });

					while (cursor.moveToNext()) {
						String location = cursor.getString(0);
						address = location.substring(0, location.length() - 2);
					}
					cursor.close();
					
					
					
					
					//0855-59790386
					cursor = database.rawQuery(
							"select location from data2 where area = ?",
							new String[] { number.substring(1, 4) });
					
					while (cursor.moveToNext()) {
						String location = cursor.getString(0);
						address = location.substring(0, location.length() - 2);
					}
					
				}

				break;
			}

		}
		return address;
	}

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值