ContentProvider
1.ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能。
2.技能get点:
(1)访问系统自带的内容提供者(******)
手机联系人/音频/视频/图库/短信/系统设置
(2)自己写内容提供者
(1)添加获取手机联系人的权限
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 读短信的权限
ContentResolver contentResolver = getContentResolver();
Uri uri1 = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//图片
Uri uri2 = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//音乐
Uri uri3 = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;//视频
Cursor query1 = contentResolver.query(uri1, null, null, null, null);
while (query1.moveToNext()){
// MediaStore.Images.Media.DATA;//文件的路径
// MediaStore.Images.Media.TITLE;//图片的名称
// MediaStore.Images.Media.HEIGHT;//图片的高度
// MediaStore.Images.Media.WIDTH;//图片的宽度
// MediaStore.Images.Media.SIZE;//图片的大小
String data = query1.getString(query1.getColumnIndex(MediaStore.Images.Media.DATA));
String title = query1.getString(query1.getColumnIndex(MediaStore.Images.Media.TITLE));
int height = query1.getInt(query1.getColumnIndex(MediaStore.Images.Media.HEIGHT));
int width = query1.getInt(query1.getColumnIndex(MediaStore.Images.Media.WIDTH));
long size = query1.getLong(query1.getColumnIndex(MediaStore.Images.Media.SIZE));
Log.e("###",data+":"+title+":"+height+":"+width+":"+size);
arrayList.add(data);
}
Myad myad=new Myad(MainActivity.this);
myad.notifyDataSetChanged();
gridView.setAdapter(myad);
// Cursor query2 = contentResolver.query(uri2, null, null, null, null);
// while (query2.moveToNext()){
// //TITLE:歌名 ARTIST 歌手 DURATION 总时长 DATA 地址
// String title = query2.getString(query2.getColumnIndex(MediaStore.Video.Media.TITLE));
// String artist = query2.getString(query2.getColumnIndex(MediaStore.Video.Media.ARTIST));
// String data = query2.getString(query2.getColumnIndex(MediaStore.Video.Media.DATA));
// long duration = query2.getLong(query2.getColumnIndex(MediaStore.Video.Media.DURATION));
// Log.e("##",":"+data+":"+artist+":"+title+":"+duration);
// }