Android工程搭建
1、ContentProvider
a.ContentProvider介绍
1.ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能。
2.技能get点:
(a)访问系统自带的内容提供者(******)
手机联系人/音频/视频/图库/短信/系统设置
(b)自己写内容提供者
3.注意:
Contentprovider:内容提供者
ConteneResolver:内容解析者
URL:地址
2、原理图
URI
1.获取音频:
(1)uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
(2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Audio.Media.TITLE,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.DURATION,MediaStore.Audio.Media.DATA};
2.获取视频:
(1)uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI
(2)字段:TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
String[] strs= new String[]{MediaStore.Video.Media.TITLE,MediaStore.Video.Media.ARTIST,MediaStore.Video.Media.DURATION,MediaStore.Video.Media.DATA};
3.获取图库:
(1)uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI
(2)字段:
MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址
4.获取联系人:
(1)uri:ContactsContract.CommonDataKinds.Phone.CONTENT_URI
(2)字段:Phone.DISPLAY_NAME:姓名 NUMBER:电话
String[] strs= new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER};
5.获取短信:
(1)uriTelephony.Sms.CONTENT_URI
(2)字段:ADDRESS 地址 BODY 内容
String[] strs= new String[]{Telephony.Sms.ADDRESS,Telephony.Sms.BODY};
备注:1 2 3 读sd卡的权限 4 读联系人的权限 5 读短信的权限
数据库工具类
public class StudentDao {
private Context con;
private MySQLite mySQLite;
private SQLiteDatabase database;
private static final String TABLENAME = "student";//表名
public StudentDao(Context con) {
this.con = con;
mySQLite = new MySQLite(con);
database = mySQLite.getWritableDatabase();
}
//增加
public boolean add(Student student){
ContentValues values = new ContentValues();
values.put("name",student.getName());
values.put("age",student.getAge());
values.put("height",student.getHeight());
values.put("id",student.getId());
long insert = database.insert(TABLENAME, null, values);
if(insert>0){
return true;
}else{
return false;
}
}
//删除
public int deleteBy_id(int id){
int delete = database.delete(TABLENAME, "id=?", new String[]{id + ""});
return delete;
}
//删除全部
public int deleteAll(){
int delete = database.delete(TABLENAME, null,null);
return delete;
}
//修改
public int updateBy_id(Student student,int id){
ContentValues values = new ContentValues();
values.put("name",student.getName());
values.put("age",student.getAge());
values.put("height",student.getHeight());
values.put("id",student.getId());
int update = database.update(TABLENAME, values, "id=?", new String[]{id + ""});
return update;
}
//查询一个
public ArrayList<Student> query(int id){
ArrayList<Student> list = new ArrayList<>();
Cursor query = database.query(TABLENAME, null, "id=?", new String[]{id + ""}, null, null, null);
while(query.moveToNext()){
String name = query.getString(query.getColumnIndex("name"));
int age = query.getInt(query.getColumnIndex("age"));
float height = query.getFloat(query.getColumnIndex("height"));
int id1 = query.getInt(query.getColumnIndex("id"));
Student student = new Student(name, age, height, id1);
list.add(student);
}
return list;
}
//查询所有
public ArrayList<Student> queryAll(){
ArrayList<Student> list = new ArrayList<>();
Cursor query = database.query(TABLENAME, null, null, null, null, null,null);
while(query.moveToNext()){
String name = query.getString(query.getColumnIndex("name"));
int age = query.getInt(query.getColumnIndex("age"));
float height = query.getFloat(query.getColumnIndex("height"));
int id1 = query.getInt(query.getColumnIndex("id"));
Student student = new Student(name, age, height, id1);
list.add(student);
}
return list;
}
}