標籤:
將添加的黑名單儲存到本機資料庫:
建立一個黑名單資料庫, 將儲存number(電話號)和mode(模式)
1 電話 2 簡訊 3 全部
資料庫建立:
package com.chb.myphonesave.dao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class BlackNumberOpenHelper extends SQLiteOpenHelper{ public static final String dbName = "blacknumber.db"; public BlackNumberOpenHelper(Context context) { super(context, dbName, null, 1); } @Override public void onCreate(SQLiteDatabase db) { String sql = "create table blacknumber(_id integer primary key autoincrement, " + "number varchar(20), mode integer)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
資料庫管理:增刪改查
package com.chb.myphonesave.dao;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.chb.myphonesave.entity.BlackNumberInfo;public class BlackNumberDao { private BlackNumberOpenHelper bnOpenHelper; private static BlackNumberDao dbDao = null; private BlackNumberDao(Context context) { bnOpenHelper = new BlackNumberOpenHelper(context); } /** * 擷取資料庫管理執行個體 */ public static BlackNumberDao getInstance(Context context) { if(dbDao == null){ synchronized (BlackNumberDao.class) { if(dbDao == null){ dbDao = new BlackNumberDao(context); } } } return dbDao; } /** * 向黑名單資料庫中添加資訊 * @param number * @param mode */ public void add(String number, int mode){ SQLiteDatabase db = bnOpenHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("number", number); values.put("mode", mode); db.insert(BlackNumberOpenHelper.dbName, null, values); db.close();//關閉資料庫 } /** * 將制定號碼移除黑名單 * @param number * @return */ public int delete(String number){ SQLiteDatabase db = bnOpenHelper.getWritableDatabase(); int flag = 0;//影響的行數 db.delete(BlackNumberOpenHelper.dbName, " number = ? ", new String[] {number}); db.close(); return flag; } /** * * @param number * @param mode * @return */ public int update(String number, int mode){ SQLiteDatabase db = bnOpenHelper.getWritableDatabase(); int flag = 0;//影響的行數 ContentValues values = new ContentValues(); values.put("mode", mode); db.update(BlackNumberOpenHelper.dbName, values, " number = ? ", new String[] {number}); db.close(); return flag; } /** * 查詢指定number的條數 * @param number * @return */ public int find(String number){ SQLiteDatabase db = bnOpenHelper.getReadableDatabase(); int flag = 0;//查詢的行數 Cursor cursor = db.query(BlackNumberOpenHelper.dbName, new String[] {"number", "mode"},
" number = ? ", new String[]{number}, null, null, null); flag = cursor.getCount(); db.close(); return flag; } /** * 擷取指定給number的mode * @param number * @return */ public int findMode(String number){ SQLiteDatabase db = bnOpenHelper.getReadableDatabase(); int flag = 0;//查詢的行數 Cursor cursor = db.query(BlackNumberOpenHelper.dbName, new String[] {"number", "mode"}, " number = ? ", new String[]{number}, null, null, null); if(cursor.getCount() > 0){ cursor.getInt(0); } db.close(); return flag; } /** * 查詢所有的黑名單資訊 * @return */ public List<BlackNumberInfo> findAll(){ SQLiteDatabase db = bnOpenHelper.getReadableDatabase(); List<BlackNumberInfo> list = new ArrayList<BlackNumberInfo>(); Cursor cursor = db.query(BlackNumberOpenHelper.dbName, new String[] {"number", "mode"}, null, null, null, null, null); while(cursor.moveToNext()){ String number = cursor.getString(cursor.getColumnIndex("number")); int mode = cursor.getInt(cursor.getColumnIndex("mode")); BlackNumberInfo info = new BlackNumberInfo(number, mode); list.add(info); } db.close(); return list; } /** * 查詢部分的黑名單資訊 * @return */ public List<BlackNumberInfo> findPart(int startIndex){ SQLiteDatabase db = bnOpenHelper.getReadableDatabase(); List<BlackNumberInfo> list = new ArrayList<BlackNumberInfo>(); Cursor cursor = db .rawQuery( "select number,mode from blacknumber order by _id desc limit ?,20", new String[] { startIndex + "" });// 按照id逆序排列 while(cursor.moveToNext()){ String number = cursor.getString(cursor.getColumnIndex("number")); int mode = cursor.getInt(cursor.getColumnIndex("mode")); BlackNumberInfo info = new BlackNumberInfo(number, mode); list.add(info); } db.close(); return list; } /** * 擷取資料總數 */ public int getTotalCount() { SQLiteDatabase db = bnOpenHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("select count(*) from blacknumber", null); int total = 0; if (cursor.moveToFirst()) { total = cursor.getInt(0); } cursor.close(); db.close(); return total; } }
黑名單實體類:
package com.chb.myphonesave.entity;/** * 黑名單資訊實體類 */public class BlackNumberInfo { public String number; public int mode; public BlackNumberInfo(String number, int mode) { this.number = number; this.mode = mode; }}
My Phone管家(6)騷擾攔截 黑名單資料庫