这是我添加联系人的一段代码,为什么没姓名?
void Add()
{
ArrayList<ContentProviderOperation> ops2 = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops2.size(); ops2
.add(ContentProviderOperation
.newInsert(
ContactsContract.RawContacts.CONTENT_URI)
.withValue(
ContactsContract.RawContacts.ACCOUNT_TYPE,
null)
.withValue(
ContactsContract.RawContacts.ACCOUNT_NAME,
null)
.build()); ops2
.add(ContentProviderOperation
.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValues(
getSimpleCV())
.withValues(
getPhoneCV())
.build());
try {
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops2);
Toast.makeText(getApplicationContext(), "联系人添加成功", Toast.LENGTH_LONG).show();
} catch (RemoteException e) {
// TODO Auto-generated catch block
Log.e("ADD","添加联系人时出错"+e.getMessage());
Toast.makeText(getApplicationContext(), "联系人添加失败:"+e.getMessage(), Toast.LENGTH_LONG).show();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
Log.e("ADD","添加联系人时出错"+e.getMessage());
Toast.makeText(getApplicationContext(), "联系人添加失败:"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
public ContentValues getSimpleCV() {
ContentValues cv = new ContentValues();
cv.put(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
cv.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "三 张");
cv.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, "三 ");
cv.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "张");
cv.put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME, "三 ");
cv.put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME, "张");
return cv;
}
public ContentValues getPhoneCV() {
ContentValues cv = new ContentValues();
cv.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
cv.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "10086");
cv.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN);
return cv;
}
void Add()
{
ArrayList<ContentProviderOperation> ops2 = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops2.size(); ops2
.add(ContentProviderOperation
.newInsert(
ContactsContract.RawContacts.CONTENT_URI)
.withValue(
ContactsContract.RawContacts.ACCOUNT_TYPE,
null)
.withValue(
ContactsContract.RawContacts.ACCOUNT_NAME,
null)
.build()); ops2
.add(ContentProviderOperation
.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValues(
getSimpleCV())
.withValues(
getPhoneCV())
.build());
try {
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops2);
Toast.makeText(getApplicationContext(), "联系人添加成功", Toast.LENGTH_LONG).show();
} catch (RemoteException e) {
// TODO Auto-generated catch block
Log.e("ADD","添加联系人时出错"+e.getMessage());
Toast.makeText(getApplicationContext(), "联系人添加失败:"+e.getMessage(), Toast.LENGTH_LONG).show();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
Log.e("ADD","添加联系人时出错"+e.getMessage());
Toast.makeText(getApplicationContext(), "联系人添加失败:"+e.getMessage(), Toast.LENGTH_LONG).show();
}
}
public ContentValues getSimpleCV() {
ContentValues cv = new ContentValues();
cv.put(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
cv.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "三 张");
cv.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, "三 ");
cv.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "张");
cv.put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME, "三 ");
cv.put(ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME, "张");
return cv;
}
public ContentValues getPhoneCV() {
ContentValues cv = new ContentValues();
cv.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
cv.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "10086");
cv.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN);
return cv;
}
解决方案 »
- 【Java 基础】想学习 Android 开发,需要多少Java基础呢?
- listview中添加Button后,Button能够功能不完全相同吗?
- intent的问题
- 初学android开发,上开发实例,有图有真相
- 求助android 隐藏SeekBar的特效(渐渐消失)
- android客户端可以获得服务器session中的值吗?
- 祝大家节日快乐,请教个bindService的生存期问题
- android自带的日历好像很少有人使用吧?不设置账户没法用?
- framework中manager调用service有什么作用阿?
- android studio 3.4.1 编译已有工程,无法下载gradle-3.1.2.pom文件
- 淘宝网手机客户端如何实现获取数据库商品信息
- Android空指针问题
String phone = "0123456789";
ContentValues values = new ContentValues();
values.put(Data.DISPLAY_NAME, name);
Uri rawContactUri = c.getContentResolver().insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
long contactId = Util.getContactId(c, rawContactId);
System.out.println("rawContactId = " + rawContactId);
System.out.println("contactId = " + contactId);values.clear();
values.put(Phone.NUMBER, phone);
values.put(Phone.TYPE, Phone.TYPE_OTHER);
values.put(Phone.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Data.RAW_CONTACT_ID, rawContactId);
c.getContentResolver().insert(Data.CONTENT_URI, values);values.clear();
values.put(Data.MIMETYPE, Data.CONTENT_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
values.put(Data.RAW_CONTACT_ID, rawContactId);
c.getContentResolver().insert(Data.CONTENT_URI, values);values.clear();
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
values.put(Data.RAW_CONTACT_ID, rawContactId);
c.getContentResolver().insert(Data.CONTENT_URI, values);