/**
  * 删除黑名单号码
  *
  * @param number 号码
  * @return 是否删除成功
  */
 public boolean delete(String number) {
   // 获取到可写的数据库
   SQLiteDatabase db = helper.getWritableDatabase();
   int rownumber = db.delete("blackinfo", "number=?", new String[] {number});
   if (rownumber == 0) {
     return false;
   } else {
     return true;
   }
 }
 /**
  * 获取数据库的总条目个数
  *
  * @param pagenumber 第几页,页码 从第0页开始
  * @param pagesize 每一个页面的大小
  */
 public int getTotalNumber() {
   // 得到可读的数据库
   SQLiteDatabase db = helper.getReadableDatabase();
   Cursor cursor = db.rawQuery("select count(*) from blackinfo", null);
   cursor.moveToNext();
   int count = cursor.getInt(0);
   cursor.close();
   db.close();
   return count;
 }
 /**
  * 修改黑名单号码的拦截模式
  *
  * @param number 号码
  * @param newmode 新的拦截模式
  * @return 是否修改成功
  */
 public boolean changeBlockMode(String number, String newmode) {
   // 获取到可写的数据库
   SQLiteDatabase db = helper.getWritableDatabase();
   ContentValues values = new ContentValues();
   values.put("mode", newmode);
   int rownumber = db.update("blackinfo", values, "number=?", new String[] {number});
   if (rownumber == 0) {
     return false;
   } else {
     return true;
   }
 }
 /**
  * 添加黑名单号码
  *
  * @param number 号码
  * @param mode 拦截模式
  * @return 是否添加成功
  */
 public boolean add(String number, String mode) {
   // 获取到可写的数据库
   SQLiteDatabase db = helper.getWritableDatabase();
   ContentValues values = new ContentValues();
   values.put("number", number);
   values.put("mode", mode);
   long rowid = db.insert("blackinfo", null, values);
   if (rowid == -1) {
     return false;
   } else {
     return true;
   }
 }
 /** 查询全部的黑名单号码 */
 public List<BlackNumberInfo> findAll() {
   // 得到可读的数据库
   SQLiteDatabase db = helper.getReadableDatabase();
   Cursor cursor =
       db.query("blackinfo", new String[] {"number", "mode"}, null, null, null, null, null);
   List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();
   while (cursor.moveToNext()) {
     BlackNumberInfo info = new BlackNumberInfo();
     String number = cursor.getString(0);
     String mode = cursor.getString(1);
     info.setMode(mode);
     info.setNumber(number);
     blackNumberInfos.add(info);
   }
   cursor.close();
   db.close();
   SystemClock.sleep(3000);
   return blackNumberInfos;
 }
 /**
  * 返回一个黑名单号码拦截模式
  *
  * @param number 要查询的黑名单号码
  * @return 0不是黑名单号码不拦截 1全部拦截 2短信拦截 3电话拦截
  */
 public String findBlockMode(String number) {
   String mode = "0";
   // 获取到可读的数据库
   SQLiteDatabase db = helper.getReadableDatabase();
   Cursor cursor =
       db.query(
           "blackinfo",
           new String[] {"mode"},
           "number=?",
           new String[] {number},
           null,
           null,
           null);
   if (cursor.moveToNext()) {
     mode = cursor.getString(0);
   }
   cursor.close();
   db.close();
   return mode;
 }
 /**
  * 分批加载数据
  *
  * @param startIndex 从哪个位置开始加载数据
  * @param maxCount 最多加载几条数据
  */
 public List<BlackNumberInfo> findPart2(int startIndex, int maxCount) {
   // 得到可读的数据库
   SQLiteDatabase db = helper.getReadableDatabase();
   Cursor cursor =
       db.rawQuery(
           "select number,mode from blackinfo order by _id desc limit ? offset ?",
           new String[] {String.valueOf(maxCount), String.valueOf(startIndex)});
   List<BlackNumberInfo> blackNumberInfos = new ArrayList<BlackNumberInfo>();
   while (cursor.moveToNext()) {
     BlackNumberInfo info = new BlackNumberInfo();
     String number = cursor.getString(0);
     String mode = cursor.getString(1);
     info.setMode(mode);
     info.setNumber(number);
     blackNumberInfos.add(info);
   }
   cursor.close();
   db.close();
   SystemClock.sleep(30);
   return blackNumberInfos;
 }