一丶獲取聯(lián)系人的信息
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)安慶,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
點(diǎn)擊獲取聯(lián)系人信息
public void click(View view){
//獲取內(nèi)容解析器
ContentResolver resolver = getContentResolver() ;
//設(shè)定訪問的uri(系統(tǒng)本機(jī))
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts") ;//聯(lián)系人的id
Uri datauri = Uri.parse("content://com.android.contacts/data") ;//聯(lián)系人信息
//查詢所有聯(lián)系人的id
Cursor idCursor = resolver.query(uri, new String[]{"contact_id"}, null, null, null) ;
while(idCursor.moveToNext()){
String id = idCursor.getString(0) ;
//根據(jù)id去data表中查詢數(shù)據(jù)
//注意:查詢數(shù)據(jù)的時(shí)候其實(shí)是查詢的是一個(gè)視圖,在視圖中將字段mimetype_id改成了mimetype, 在查詢的時(shí)候注意改過來
Cursor datacurcor = resolver.query(datauri, new String[]{"mimetype","data1"}, "raw_contact_id=?", new String[]{id}, null) ;
Contact c = new Contact() ;//聲明并實(shí)例化一個(gè)聯(lián)系人信息對象
while(datacurcor.moveToNext()){
String type = datacurcor.getString(0) ;
String data = datacurcor.getString(1) ;
//根據(jù)mimetype的值來封裝聯(lián)系人具體的信息
if("vnd.android.cursor.item/email_v2".equals(type))
c.setEmail(data) ;
if("vnd.android.cursor.item/im".equals(type))
c.setQq(data) ;
if("vnd.android.cursor.item/phone_v2".equals(type))
c.setPhone(data) ;
if("vnd.android.cursor.item/name".equals(type))
c.setName(data) ;
if("vnd.android.cursor.item/postal-address_v2".equals(type))
c.setAddress(data) ;
}
datacurcor.close() ;
list.add(c) ;
}
idCursor.close() ;
//數(shù)據(jù)封裝完畢
//顯示到listView中
lv.setAdapter(new Myadapter()) ;
}
private class Myadapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = null ;
if(convertView == null)
tv = new TextView(MainActivity.this) ;
else
tv = (TextView) convertView ;
tv.setTextSize(15) ;
StringBuilder sb = new StringBuilder() ;
Contact c = list.get(position) ;
sb.append("姓名:" + c.getName() + " 電話:" + c.getPhone() + " 地址:" + c.getAddress() + " 郵箱:" + c.getEmail() + " QQ:" + c.getQq()) ;
tv.setText(sb.toString()) ;
return tv;
}
}
注意:要在清單文件里面讀取聯(lián)系人權(quán)限配置權(quán)限
二丶插入一條聯(lián)系人信息
public void click(View view) {
// 拿到信息
String name = etname.getText().toString();
String phone = etphone.getText().toString();
String email = etemail.getText().toString();
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(phone)
|| TextUtils.isEmpty(email)) {
Toast.makeText(this, "信息必須都要填寫", 0).show();
return;
}
/**
* 插入數(shù)據(jù)的思路:
* 1.在raw_contact表中查詢所有的記錄的個(gè)數(shù)
* 2.給個(gè)數(shù)加1就是新的記錄的id
3.給data表插入記錄
*/
// 獲取內(nèi)容解析器
ContentResolver resolver = getContentResolver();
// 設(shè)定訪問的uri
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri datauri = Uri.parse("content://com.android.contacts/data");
// 查詢所有聯(lián)系人的id //獲取所有記錄的個(gè)數(shù)
Cursor idCursor = resolver.query(uri, new String[] { "contact_id" },
null, null, null);
int count = idCursor.getCount() ;
idCursor.close() ;
//插入記錄的id
int id = count + 1 ;
//向raw_contact插入id
ContentValues values = new ContentValues() ;
values.put("contact_id", id) ;
resolver.insert(uri, values) ; //id就插入到表raw_contact中了
//向data表中插入數(shù)據(jù)
//插入name記錄
ContentValues namevalues = new ContentValues() ;
namevalues.put("mimetype", "vnd.android.cursor.item/name") ;
namevalues.put("data1", name) ;
namevalues.put("raw_contact_id",id) ;
resolver.insert(datauri, namevalues) ;
//插入電話
ContentValues phonevalues = new ContentValues() ;
phonevalues.put("mimetype", "vnd.android.cursor.item/phone_v2") ;
phonevalues.put("data1", phone) ;
phonevalues.put("raw_contact_id",id) ;
resolver.insert(datauri, phonevalues) ;
//插入郵箱
ContentValues emailvalues = new ContentValues() ;
emailvalues.put("mimetype", "vnd.android.cursor.item/email_v2") ;
emailvalues.put("data1", email) ;
emailvalues.put("raw_contact_id",id) ;
resolver.insert(datauri, emailvalues) ;
Toast.makeText(this, "插入成功", 0).show() ;
}