zoukankan      html  css  js  c++  java
  • android项目查询号码归属地

    首先要有一个号码归属地的数据库,然后把这个数据库放进assets目录下,之后在闪屏页里读取这个数据库,

    放到data/data/包名/files目录下、

    最后就是对这个数据库进行操作了

    在闪屏页拷贝数据库文件

        private void copyDB(String dbname){
            File targetFile = new File(getFilesDir(),dbname);
            if(targetFile.exists()){
                System.out.println("已经存在了");
                return;
            }
            FileOutputStream fos = null;
            InputStream in  = null;
            try {
                fos = new FileOutputStream(targetFile);
                in = getAssets().open(dbname);
                int len = 0;
                byte[] b = new byte[1024];
                while((len=in.read(b))!=-1){
                    fos.write(b, 0, len);
                }
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                if(in!=null){
                    try {
                        in.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                if(fos!=null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }

    然后具体查询操作

    package com.itheima.db.dao;
    
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    
    public class AddressDao {
        private static final String PATH = "data/data/com.itheima.superman/files/address.db";
    
        public static String findAddress(String phoneNumber) {
            String address="未知号码";
            // 读取一个数据库文件
            if(phoneNumber.matches("^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$")){
                
                SQLiteDatabase database = SQLiteDatabase.openDatabase(PATH, null,
                        SQLiteDatabase.OPEN_READONLY);
                Cursor cu = database.rawQuery(
                        "select location from data2 where id=(select outkey from data1 where id=?)",
                        new String[] {phoneNumber.substring(0,7)});
                if(cu.moveToNext()){
                    address = cu.getString(0);
                }
                cu.close();
                database.close();
            }
            return address;
    
        }
    }
  • 相关阅读:
    ural 1110,快速幂
    ural 1109,NYOJ 239,匈牙利算法邻接表
    CodeBlocks养眼的colour theme
    UVa 10047,独轮车
    UVa 10054,欧拉回路
    UVa 11624,两次BFS
    hiho一下,第115周,FF,EK,DINIC
    Poj(1220),hash
    2013 Asia Regional Changchun I 题,HDU(4821),Hash
    UVa 213,World Finals 1991,信息解码
  • 原文地址:https://www.cnblogs.com/84126858jmz/p/5014565.html
Copyright © 2011-2022 走看看