归属地查询

public class AddressDao {
// 查询号码的归属地信息
// 13512345667 0101234567

public static String getAddress(String number) {
String address = number;
SQLiteDatabase db = SQLiteDatabase.openDatabase("/data/data/com.itheima.mobilesafe/files/address.db", null,SQLiteDatabase.OPEN_READONLY);
// 正则表达式 过滤手机号码
// ^1[3458]\d{9}$
if (number.matches("^1[3458]\\d{9}$")) {// 手机号码
String sqlStr ="select location from data2 where id = (select outkey from data1 where id = ?)";
Cursor cursor = db.rawQuery(sqlStr,new String[] {number.substring(0, 7)});
if (cursor.moveToNext()) {
address = cursor.getString(0);
}
cursor.close();
} else {// 其他号码 110 119 999 120 83559967 02012345678
// 020 0201
switch (number.length()) {
case 3:
address="报警电话";
break;

case 4:
address="模拟器";
break;

case 5:
address="客服电话";
break;

case 7:
address="本地电话";
break;

case 8:
address="本地电话";
break;

default:
if(number.length()>=10&&number.startsWith("0")){//长途电话.
String prefix3 = number.substring(1, 3);
String prefix4 = number.substring(1, 4);
Cursor cursor = db.rawQuery("select location from data2 where area = ?", new String[]{prefix3});
if(cursor.moveToNext()){
//xx电信 xx联通
String location = cursor.getString(0);
address = location.substring(0, location.length()-2);
}
cursor.close();

cursor = db.rawQuery("select location from data2 where area = ?", new String[]{prefix4});
if(cursor.moveToNext()){
//xx电信 xx联通
String location = cursor.getString(0);
address = location.substring(0, location.length()-2);
}
cursor.close();
}
break;
}


}
db.close();
return address;
}
}

 

 

public class NumberQueryActivity extends Activity {
private EditText et_number;
private TextView tv_number_address;
private Vibrator vibrator;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_number_query);
et_number = (EditText) findViewById(R.id.et_number);
tv_number_address = (TextView) findViewById(R.id.tv_number_address);
vibrator= (Vibrator) getSystemService(VIBRATOR_SERVICE);

//添加一个edittext的文本监听器
et_number.addTextChangedListener(new TextWatcher() {

/**
* 当文本变化的时候
*/
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String address = AddressDao.getAddress(s.toString());
tv_number_address.setText("归属地:"+address);
}
/**
* 在文本变化之前调用的方法
*/
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {

}
/**
* 文本变化后
*/
@Override
public void afterTextChanged(Editable s) {

}
});

}

//查询按钮的点击事件  震动也需要权限<uses-permission android:name="android.permission.VIBRATE" /> 否则vibrator.vibrate(Long.MaxValue);手机就要被震坏了
public void query(View view){
String number = et_number.getText().toString().trim();
if(TextUtils.isEmpty(number)){
Toast.makeText(this, "号码不能为空",1).show();
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
et_number.startAnimation(shake);
//view.startAnimation(shake); 按钮也跟随震动 
vibrator.vibrate(300);
return;
}else{
String address = AddressDao.getAddress(number);
tv_number_address.setText("归属地:"+address);
}

}
}

;

posted @ 2015-11-24 13:13  黑土白云  阅读(323)  评论(0编辑  收藏  举报