contentprovider与resolver使用"/>
contentprovider与resolver使用
注册provider:
<provider
android:name=".MyContentProvider"
android:authorities="com.example.mycontentprovider.mycontentprovider" //唯一标识
android:enabled="true"
android:exported="true"/>
provider获取数据:
public static void getContactsInfo(Context context) {
//1. 获取内容解析者
ContentResolver contentResolver = context.getContentResolver();
// ContactsContract 联系人的API
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
};
//2.查询操作
//uri :查询地址
//projection :查询的数据字段名称
//selection :查询的条件 where id=..
//selectionArgs :查询条件的参数
//sortOrder :排序s
// contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);
Cursor cursor = contentResolver.query(uri, projection, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(0);
String number = cursor.getString(1);
int id = cursor.getInt(2);
Bitmap bitmap = getContactPhoto(context, id);
if (null == bitmap) {
Log.e("Contact", "id: " + id + " 头像不为空");
} else {
Log.e("Contact", "id: " + id + " 头像为空");
}
}
}
public static Bitmap getContactPhoto(Context context, int id) {
ContentResolver contentResolver = context.getContentResolver();
// Uri uri = ContactsContract.Contacts.CONTENT_URI;
//拼接路径
//
//参数一:表的路径
//参数二:联系人具体的路径
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, id + "");
//获取联系人头像,以流的方式返回
InputStream is = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri);
Bitmap bitmap = BitmapFactory.decodeStream(is);
if (is != null) {
try {
is.close();
is = null;
} catch (IOException e) {
e.printStackTrace();
}
}
return bitmap;
}
Resolver调用:
ContentResolver resolver = context.getContentResolver();
resolver.delete(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaStore.Images.Media.DISPLAY_NAME + "='" + originFileName + "." + photo.extensionName + "'",
null
);
更多推荐
contentprovider与resolver使用
发布评论