联系人
首先要在清单文件中添加静态权限,才能访问手机中的联系人
<uses-permission android:name="android.permission.READ_CONTACTS"/>
//查询联系人
public void GetLinkman() {
//获取提供者
ContentResolver resolver = getContentResolver();
//在这里转换联系人Uri
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;//联系人的表名
//进行查询操作
Cursor query = resolver.query(uri, null, null, null, null);
if (query != null) {
while (query.moveToNext()) {
//姓名
String name = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
//手机号
String number = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i("---", "姓名:"+name + "=手机号:" + number);
}
query.close();
}
}
通话记录
首先要在清单文件中添加静态权限,才能访问手机中的通话记录
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
这里可以对通话记录进行增删改查的操作
//添加通话记录
private void AddCallLog() {
//获取提供者
ContentResolver resolver = getContentResolver();
//在这里转换通话记录的Uri
Uri uri = CallLog.Calls.CONTENT_URI;//通话记录的表名
//因为添加的方法里需要ContentValues类型的参数
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, "16666666666");//手机号
values.put(CallLog.Calls.DATE, "2020-06-27");//时间
values.put(CallLog.Calls.TYPE, "拨打");//状态
values.put(CallLog.Calls.DURATION, "2:02");//时长
//需要添加一个动态权限
if (checkSelfPermission(Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
return;
}
//进行添加操作 表名 添加的列
resolver.insert(uri, values);
}
//查询通话记录
public void GetCallLog() {
//获取提供者
ContentResolver resolver = getContentResolver();
//在这里转换通话记录的Uri
Uri uri = CallLog.Calls.CONTENT_URI;//通话记录的表名
String[] strings = new String[]{
// 手机号 日期时间
CallLog.Calls.NUMBER, CallLog.Calls.DATE,
// 状态 通话时长
CallLog.Calls.TYPE, CallLog.Calls.DURATION};
//需要添加一个动态权限
if (checkSelfPermission(Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
return;
}
//进行查询操作 表名 查询的列 条件 条件值 排序方式
Cursor query = resolver.query(uri, strings, null, null, null);
if (query != null) {
while (query.moveToNext()) {
String number = query.getString(query.getColumnIndex(CallLog.Calls.NUMBER));//电话号码
String type = query.getString(query.getColumnIndex(CallLog.Calls.TYPE));//状态
String date = query.getString(query.getColumnIndex(CallLog.Calls.DATE));//日期
String duration = query.getString(query.getColumnIndex(CallLog.Calls.DURATION));//通话时长
Log.i("---", "手机号:"+number + "=类型:" + type + "=日期:" + date + "=通话时长:" + duration);
}
query.close();
}
}
//修改通话记录
public void UpdCallLog() {
//获取提供者
ContentResolver resolver = getContentResolver();
//在这里转换通话记录的Uri
Uri uri = CallLog.Calls.CONTENT_URI;//通话记录的表名
//因为修改的方法里需要一个ContentValues类型的参数
ContentValues values = new ContentValues();
values.put(CallLog.Calls.DURATION, "1:11");
//需要添加一个动态权限
if (checkSelfPermission(Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
return;
}
//进行修改 表名 新值 修改要符合的条件 给?赋值
resolver.update(uri, values, CallLog.Calls.NUMBER + "= ?", new String[]{"16666666666"});
}
//删除通话记录
public void DelCallLog() {
Uri uri = CallLog.Calls.CONTENT_URI;//通话记录的表名
//需要添加一个动态权限
if (checkSelfPermission(Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
return;
}
//进行删除 表名 删除要符合的条件 给?赋值
resolver.delete(uri,CallLog.Calls.DURATION+"= ?",new String[]{"1:11"});
}
短信
首先要在清单文件中添加静态权限,才能访问手机中的短信
<uses-permission android:name="android.permission.READ_SMS"/>
//查询短信
public void getMsg(){
Uri uri = Telephony.Sms.CONTENT_URI;//转换短信的Uri
//查询参数里需要String数组,数组里就是短信的字段名
String[] strings = new String[]{
Telephony.Sms.ADDRESS,//短信地址
Telephony.Sms.BODY//短信内容
};
// 表名 数组 条件 给条件赋值 排序
Cursor query = resolver.query(uri, strings, null, null, null);
while(query.moveToNext()){
String address = query.getString(query.getColumnIndex(Telephony.Sms.ADDRESS));//获取短信地址
String body = query.getString(query.getColumnIndex(Telephony.Sms.BODY));//获取短信内容
Log.i("---","地址:"+address+"内容:"+body);
}
}
音频
首先要在清单文件中添加静态权限,才能访问手机中的音频
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//查询音频
public void getMusice(){
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;//转换音频的Uri
// 表名 要查询的字段(查询所有字段就赋值为null)
Cursor query = resolver.query(uri, null,
//查询条件 给条件赋值 排序
null, null, null);
while(query.moveToNext()){
String title = query.getString(query.getColumnIndex(MediaStore.Audio.Media.TITLE));//获取歌名
String artist = query.getString(query.getColumnIndex(MediaStore.Audio.Media.ARTIST));//获取歌手
String duration = query.getString(query.getColumnIndex(MediaStore.Audio.Media.DURATION));//获取时长
String data = query.getString(query.getColumnIndex(MediaStore.Audio.Media.DATA));//获取地址
Log.i("---","歌名:"+title+"歌手:"+artist+"总时长:"+duration+"地址:"+data);
}
}
图片
首先要在清单文件中添加静态权限,才能访问手机中的图片
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//查询图片
public void getPic(){
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//转换图片的Uri
// 表名 要查询的字段(查询所有字段就赋值为null)
Cursor query = resolver.query(uri, null,
//查询条件 给条件赋值 排序
null, null, null);
while(query.moveToNext()){
String title = query.getString(query.getColumnIndex(MediaStore.Images.Media.TITLE));//获取图片名称
String size = query.getString(query.getColumnIndex(MediaStore.Images.Media.SIZE));//获取图片大小
String data = query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA));//获取图片地址
Log.i("---","图片名称:"+title+"图片大小:"+size+"图片地址:"+data);
}
}
视频
首先要在清单文件中添加静态权限,才能访问手机中的视频
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//查询视频
public void getVido(){
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;//转换视频的Uri
// 表名 要查询的字段(查询所有字段就赋值为null)
Cursor query = resolver.query(uri, null,
//查询条件 给条件赋值 排序
null, null, null);
while(query.moveToNext()){
String title = query.getString(query.getColumnIndex(MediaStore.Video.Media.TITLE));//获取视频名称
String artist = query.getString(query.getColumnIndex(MediaStore.Video.Media.ARTIST));//获取视频作者
String duration = query.getString(query.getColumnIndex(MediaStore.Video.Media.DURATION));//获取视频时长
String data = query.getString(query.getColumnIndex(MediaStore.Video.Media.DATA));//获取视频地址
Log.i("---","视频名称:"+title+"视频:"+artist+"总时长:"+duration+"地址:"+data);
}
}