zoukankan      html  css  js  c++  java
  • Android实现归属地查询功能

      实现归属地查询大体有两种方法可以实现,一种是通过归属地API进行查询,另一种是查询本地数据库。两种方法各有优劣,最好结合起来使用,我本次采用的是查询数据库的方法。首先需要从网上下载归属地数据库callHomeDB.db。CSDN就可以下载。

      下载好数据库之后,可以利用一个小软件SQLite Expert Professional对数据库进行查看,同时该软件也支持对SQL语句进行操作。

      有了数据库之后就可以进行代码编写了:

      1. 将数据库文件复制到Android Studio工程目录assets下。

     

      2. 对数据库进行复制,将assets目录下的数据库复制到工程目录下:

         /**
         * 复制数据库
         */
        private void copyDB(final String dbname){
            new Thread(){
                public void run(){
                    try {
                        File file = new File(getFilesDir(),dbname);
                        if (file.exists()&&file.length()>0){
                            Log.i("VirusScanActivity","数据库已存在");
                            return;
                        }
                        InputStream is = getAssets().open(dbname);
                        FileOutputStream fos = openFileOutput(dbname,MODE_PRIVATE);
                        byte[] buffer = new byte[1024];
                        int len = 0;
                        while((len=is.read(buffer))!=-1){
                            fos.write(buffer,0,len);
                        }
                        is.close();
                        fos.close();
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }.start();
        }
    

      3. 对数据库执行查询语句,获取查询结果

        public static String checkCallHome(String phonenumber){
            String desc = null;
    
            SQLiteDatabase db = SQLiteDatabase.openDatabase("data/data/com.example.user.callhomedemo/files/callHomeDB.db",null,SQLiteDatabase.OPEN_READONLY);
            Cursor cursor = db.rawQuery("select * from mob_location where _id = ?",new String[]{phonenumber.substring(0,7)});
            if (cursor.moveToNext()){
                desc = cursor.getString(1);
            }
            cursor.close();
            db.close();
            return desc;
        }
    

       演示图片如下:

      

  • 相关阅读:
    存储过程拆分字符窜
    jquery学习
    Sql常用语法
    存储过程分页
    asp.net 定时执行程序
    C# 多线程并发处理数据库数据,发送信号等待处理完统一插入.(转)
    (转)CAS 单点登录安装笔记4
    C# 自动退出当前程序,然后再启动
    给自己的Web文件夹增加一个图片或其它文件认证
    Setting NTFS Permissions with C#
  • 原文地址:https://www.cnblogs.com/centor/p/5644454.html
Copyright © 2011-2022 走看看