Android电话短信拦截项目总结之 项目中sqlite运用
来源:互联网 发布:240控台编程视频 编辑:程序博客网 时间:2024/04/30 05:37
/**
* 数据库帮助类
* 创建数据库
* 创建表
* 插入原始数据
* 数据库助手类能创建SQLiteDatabase对象
*/
public class DbOpenhelp extends SQLiteOpenHelper {
public static final String TABLENAME = "black_info";
public DbOpenhelp(Context context) {
super(context, "zhh.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表
String black_info = "create table black_info (_id INTEGER PRIMARY KEY AUTOINCREMENT,number VARCHAR,name VARCHAR,type INTEGER )";
db.execSQL(black_info);
//插入一些原始数据
db.execSQL("insert into black_info (number, name, type) values ('110', 'FJ0', 0)");
db.execSQL("insert into black_info (number, name, type) values ('111', 'FJ1', 1)");
db.execSQL("insert into black_info (number, name, type) values ('112', 'FJ2', 2)");
db.execSQL("insert into black_info (number, name, type) values ('119', 'FJ9', 0)");
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}
//对数据库进行怎删改查的操作
public class BlackInfoDao {
DbOpenhelp dbOpenhelp = null;
public BlackInfoDao(Context context) {
dbOpenhelp = new DbOpenhelp(context);
}
/**
* 1. 添加一个黑名单
*/
public void add(BlackInfo blackinfo) {
//得到SQLiteDatabase的对象
SQLiteDatabase db = dbOpenhelp.getWritableDatabase();
//分装数据contentValues中的数据就是用map存放的
ContentValues contentValues = new ContentValues();
//key写的就是表的字段名
contentValues.put("number", blackinfo.getNumber());
contentValues.put("name", blackinfo.getName());
contentValues.put("type", blackinfo.getType());
//执行插入数据,返回id号
long id = db.insert(DbOpenhelp.TABLENAME, null, contentValues);
Log.i("1", "擦如数据的id" + id);
//关闭数据库
db.close();
}
/**
*2删除多个黑名单
*
*/
public void deleteBlackNumbers(List<Integer> ids) {
SQLiteDatabase database = dbOpenhelp.getWritableDatabase();
for (Integer id : ids) {
database.delete(DbOpenhelp.TABLENAME, "_id=" + id, null);
}
database.close();
}
/**
* 3. 删除一个黑名单
*/
public void delete(int id) {
// 得到SQLiteDatabase对象
SQLiteDatabase database = dbOpenhelp.getWritableDatabase();
// 执行delete
int deleteCount = database.delete(DbOpenhelp.TABLENAME, "_id=?", new String[] { id + "" });
Log.i("TAG", "delete deleteCount=" + deleteCount);
// 关闭连接
database.close();
}
/**
* 4.更新一个黑名单
*/
public void upData(BlackInfo blackinfo) {
//得到SQLiteDatabase的对象
SQLiteDatabase db = dbOpenhelp.getWritableDatabase();
//分装数据contentValues中的数据就是用map存放的
ContentValues values = new ContentValues();
values.put("number", blackinfo.getNumber());
values.put("name", blackinfo.getName());
values.put("type", blackinfo.getType());
//执行插入数据,返回id号
long num = db.update(DbOpenhelp.TABLENAME, values, "id=?", new String[] { blackinfo.getId()
+ "" });
Log.i("1", "更新的行数" + num);
//关闭数据库
db.close();
}
/**
* 5. 查询所有黑名单列表
*/
public List<BlackInfo> getAll() {
List<BlackInfo> list = new ArrayList<BlackInfo>();
//得到SQLiteDatabase的对象
SQLiteDatabase db = dbOpenhelp.getWritableDatabase();
//String sql = "select _id, number,name,type from black_info";
//到序之后,新加入的数据将会放到第一条
String sql = "select _id,number,name,type from black_info" + " order by _id desc";
//执行插入数据,返回id号
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String number = cursor.getString(1);
String name = cursor.getString(2);
int type = cursor.getInt(3);
BlackInfo blackInfo = new BlackInfo(id, number, name, type);
list.add(blackInfo);
}
cursor.close();
//关闭数据库
db.close();
return list;
}
/**
* 6. 根据黑名单号或名称模糊查询匹配
* 的黑名单列表
*/
public List<BlackInfo> getBlacks(String key) {
List<BlackInfo> list = new ArrayList<BlackInfo>();
//得到SQLiteDatabase的对象
SQLiteDatabase db = dbOpenhelp.getWritableDatabase();
String sql = "select _id,number,name,type from black_info where number like ? or name like ?";
//模糊查询
String[] args = new String[] { "%" + key + "%", "%" + key + "%" };
//执行插入数据,返回id号
Cursor cursor = db.rawQuery(sql, args);
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String number = cursor.getString(1);
String name = cursor.getString(2);
int type = cursor.getInt(3);
BlackInfo blackInfo = new BlackInfo(id, number, name, type);
list.add(blackInfo);
}
cursor.close();
//关闭数据库
db.close();
return list;
}
/**
* 短信号
* 判断是否是一个黑名单的短信号
* //type 0: 电话+短信 1: 电话 2:短信
*/
public boolean isSmsBlack(String number) {
boolean isBlack = false;
SQLiteDatabase database = dbOpenhelp.getWritableDatabase();
String sql = "select count(*) from " + DbOpenhelp.TABLENAME + " where number=?"
+ " and type in (0, 2)";
Cursor cursor = database.rawQuery(sql, new String[] { number });
if (cursor.moveToNext()) {
int count = cursor.getInt(0);
isBlack = count > 0; //如果>0就是黑名单号
}
database.close();
return isBlack;
}
/**
* 电话号
* 判断是否是一个黑名单的电话号
* //type 0: 电话+短信 1: 电话 2:短信
*/
public boolean isCallBlack(String number) {
boolean isBlack = false;
SQLiteDatabase database = dbOpenhelp.getWritableDatabase();
String sql = "select count(*) from " + DbOpenhelp.TABLENAME + " where number=?"
+ " and type in (0, 1)";
Cursor cursor = database.rawQuery(sql, new String[] { number });
if (cursor.moveToNext()) {
int count = cursor.getInt(0);
isBlack = count > 0; //如果>0就是黑名单号
}
database.close();
return isBlack;
}
}
- Android电话短信拦截项目总结之 项目中sqlite运用
- Android电话短信拦截项目总结之 SQLite数据库简介和使用
- Android电话短信拦截项目总结之 项目中线性布局比重使用
- Android电话短信拦截项目总结之 多选框(CheckBox)
- Android电话短信拦截项目总结之 开发工具
- Android电话短信拦截项目总结之 项目源码及相关学习资料
- Android电话短信拦截项目总结之 单选框(RadioButton)的使用方法
- Android电话短信拦截项目总结之 checkbox和listview抢焦点
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- Android小项目之--电话与短信服务
- android 短信和电话拦截
- android 短信和电话拦截
- Android 电话和短信拦截
- Android小项目之--电话与短信服务(附源码)
- Android之电话拦截
- Android项目:手机安全卫士(13)—— 通讯卫士之电话拦截与挂断
- Android电话和短信拦截器
- __attribute__
- Linux查看日志命令
- leetcode_permutaionu全排列集合_31_46_47_60
- eclipse工程迁移到studio
- AsyncTask 使用解析
- Android电话短信拦截项目总结之 项目中sqlite运用
- 浅谈 C/S 和 B/S 架构
- 今天第一个WebService终于发布成功啦,分享一下
- 因特网
- webview长按保存图片
- Apache axis2 + Eclipse 开发 WebService
- Android ListView城市列表,按a-z分组字母索引排序
- ESD保护
- Android视频录制命令screenrecord