本人正为了更加了解数据库,正在研究通讯录,但是遇到困难。
就是不懂怎么将通讯录的数据取出来做稍微的改变之后又存回去,
有哪位大虾能帮帮忙呢,就是取出数据,然后修改一下再放回去,谢谢了。
就是不懂怎么将通讯录的数据取出来做稍微的改变之后又存回去,
有哪位大虾能帮帮忙呢,就是取出数据,然后修改一下再放回去,谢谢了。
解决方案 »
- android ADT安装问题
- 联系人备份
- android编程
- HOME键,没有返回预期的效果。。帮忙查看原因!!!
- 关于android中植入广告的问题
- ActionBarActivity 和 FragmentActivity 不能同时继承 怎么办?
- 关于自定义录制视频的一些问题 求高手解决。。
- 自定义BaseAdapter,动态输入item时,触发onclick里的事件
- 在Android中导入httpcore-4.3.2.jar包,调用EntityUtils.consume(HttpEntity)提示找不到该方法
- ListView和RecycleView显示问题
- 关闭最近执行的APP的系统界面的实现
- android有没有和symbian的PC Connectivity SDK类似的东西?
ContentValues values = new ContentValues(); Uri rawContactUri = this.cr.insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri); String name = contact.getDisplayName();
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.GIVEN_NAME, name);
this.cr.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values);
for (int i = 0; i < contact.getPhone().size(); i++) {
int numType1 = Integer.parseInt(contact.getPhone().get(i)
.getType());
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(
Data.MIMETYPE,
android.provider.ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
values.put(
android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER,
contact.getPhone().get(i).getNumber());
values.put(
android.provider.ContactsContract.CommonDataKinds.Phone.TYPE,
numType1);
this.cr.insert(
android.provider.ContactsContract.Data.CONTENT_URI,
values);
} for (int i = 0; i < contact.getEmail().size(); i++) {
int emailType = Integer.parseInt(contact.getEmail().get(i)
.getType());
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(
Data.MIMETYPE,
android.provider.ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
values.put(
android.provider.ContactsContract.CommonDataKinds.Email.DATA,
contact.getEmail().get(i).getAddress());
values.put(
android.provider.ContactsContract.CommonDataKinds.Email.TYPE,
emailType);
this.cr.insert(
android.provider.ContactsContract.Data.CONTENT_URI,
values);
} values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(
Data.MIMETYPE,
android.provider.ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
/*
* values.put(
* android.provider.ContactsContract.CommonDataKinds.Organization
* .DATA, contact.getEmail().get(i).getAddress());
*/
if (contact.getOrganization().getOrganization() != null
&& contact.getOrganization().getOrganization() != "") {
values.put(
android.provider.ContactsContract.CommonDataKinds.Organization.COMPANY,
contact.getOrganization().getOrganization());
} if (contact.getOrganization().getTitle() != null
&& contact.getOrganization().getTitle() != "") {
values.put(
android.provider.ContactsContract.CommonDataKinds.Organization.TITLE,
contact.getOrganization().getTitle());
}
this.cr.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values); for (int i = 0; i < contact.getAddresses().size(); i++) {
int addressType = Integer.parseInt(contact.getAddresses()
.get(i).getType());
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(
Data.MIMETYPE,
android.provider.ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
values.put(
android.provider.ContactsContract.CommonDataKinds.StructuredPostal.STREET,
contact.getAddresses().get(i).getStreet()); values.put(
android.provider.ContactsContract.CommonDataKinds.StructuredPostal.TYPE,
addressType); this.cr.insert(
android.provider.ContactsContract.Data.CONTENT_URI,
values);
} return true;
} catch (Exception e) {
String strInfo = "";
strInfo += e.toString(); return false;
}
}
如果是修改的话也差不多 就是要先获取raw_contacts表的_id了 根据id来insert
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0)
{
while (cur.moveToNext())
{
String rawContactsId = "";
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String dispaly_name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// 读取rawContactsId
Cursor rawContactsIdCur = cr.query(RawContacts.CONTENT_URI,
null,
RawContacts.CONTACT_ID +" = ?",
new String[]{id}, null);
if (rawContactsIdCur.moveToFirst())
{
rawContactsId = rawContactsIdCur.getString(rawContactsIdCur.getColumnIndex(RawContacts._ID));
}
rawContactsIdCur.close();
// 读取号码
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor PhoneCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID +" = ?",
new String[]{rawContactsId}, null);
int tell = 0;
String[] phones = new String[21];
while (PhoneCur.moveToNext())
{
String number = PhoneCur.getString(PhoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String numberType = PhoneCur.getString(PhoneCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); update(rawContactsId,number); }
PhoneCur.close();
}
}public void update(String rawRawContactId, String NewNumber)
{
ContentValues values = new ContentValues();
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, NewNumber);
values.put(Phone.TYPE, Phone.TYPE_HOME);
String Where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] WhereParams = new String[]{rawRawContactId,Phone.CONTENT_ITEM_TYPE};
getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, Where, WhereParams);
}