Uri
获取手机联系人
权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
uri: ContactsContract.CommonDataKinds.Phone.CONTENT_URI
字段:ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME:姓名
ContactsContract.CommonDataKinds.Phone.NUMBER:电话
获取手机短信
权限:
<uses-permission android:name="android.permission.READ_SMS" />
uri: Telephony.Sms.CONTENT_URI
字段:Telephony.Sms.ADDRESS 地址
Telephony.Sms.BODY 内容
获取音频
<!-- 写外部存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 读外部存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
uri:MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
字段:MediaStore.Audio.Media.TITLE歌名
MediaStore.Audio.Media.ARTIST歌手
MediaStore.Audio.Media.DURATION总时长
MediaStore.Audio.Media.DATA地址
获取视频
<!-- 写外部存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 读外部存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
uri:MediaStore.Video.Media.EXTERNAL_CONTENT_URI
字段:MediaStore.Video.Media.TITLE歌名
MediaStore.Video.Media.ARTIST歌手
MediaStore.Video.Media.DURATION总时长
MediaStore.Video.Media.DATA地址
获取图库:
<!-- 写外部存储权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 读外部存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
uri:MediaStore.Images.Media.EXTERNAL_CONTENT_URI
字段:MediaStore.Images.Media.TITLE;图片名称
MediaStore.Images.Media.SIZE;大小
MediaStore.Images.Media.DATA;地址
获取通话记录:
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
uri:CallLog.Calls.CONTENT_URI
字段:CallLog.Calls.NUMBER:电话号码
CallLog.Calls.DATE:时间
CallLog.Calls.TYPE:类型(1.拔打 2.接听 3.错过)
CallLog.Calls.DURATION:时长
广播接收者
1.权限
<!-- 短信服务权限 -->
<uses-permission android:name="android.permission.RECEIVE_SMS" />
action:android.provider.Telephony.SMS_RECEIVED"
打电话权限
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
action:android.intent.action.NEW_OUTGOING_CALL
android.intent.action.BOOT_COMPLETED
读取短信
uri:Telephony.Sms.CONTENT_URI
字段:
Telephony.Sms.ADDRESS
Telephony.Sms.BODY
权限:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS"/>
代码:
//加动态权限
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void readMessage(){
Uri uri = Telephony.Sms.CONTENT_URI;
//Telephony.Sms.ADDRESS 地址 Telephony.Sms.BODY 内容
String[] strings = {Telephony.Sms.ADDRESS,Telephony.Sms.BODY};
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(uri,strings,null,null,null);
while (cursor.moveToNext()){
String address = cursor.getString(cursor.getColumnIndex(Telephony.Sms.ADDRESS));
String body = cursor.getString(cursor.getColumnIndex(Telephony.Sms.BODY));
Log.d("amy",address+"-"+body);
}
}
更新通话记录
ContentResolver resolver = getContentResolver();
Uri uri = CallLog.Calls.CONTENT_URI;
ContentValues values = new ContentValues();
values.put("number", "120");
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
return;
}
resolver.update(uri,values,CallLog.Calls.NUMBER+"=?",new String[]{"110"});
读取图片
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] columns = {MediaStore.Images.Media.TITLE, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.DATA};
Cursor cursor = resolver.query(uri, columns, null, null, null);
while (cursor.moveToNext()) {
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.TITLE));
Log.d("amy", title);
}