淺析Android手機(jī)衛(wèi)士讀取聯(lián)系人
推薦閱讀:
深入淺析Android手機(jī)衛(wèi)士保存密碼時(shí)進(jìn)行md5加密
詳解Android 手機(jī)衛(wèi)士設(shè)置向?qū)ы?yè)面
淺析Android手機(jī)衛(wèi)士關(guān)閉自動(dòng)更新
淺析Android手機(jī)衛(wèi)士自定義控件的屬性
獲取ContentResolver內(nèi)容解析器對(duì)象,通過(guò)getContentResolver()方法
調(diào)用ContentResolver對(duì)象的query()方法,得到raw_contacts表里面的數(shù)據(jù),得到Cursor對(duì)象
參數(shù):Uri對(duì)象,字段String數(shù)組
獲取Uri對(duì)象,通過(guò)Uri.parse(“content://com.android.contacts/raw_contacts”)方法,
while循環(huán)Cursor對(duì)象,條件是Cursor對(duì)象moveToNext()方法為真
調(diào)用Cursor對(duì)象的getString()方法,參數(shù)是索引
判斷不為null,查詢(xún)另一張表
調(diào)用ContentResolver對(duì)象的query()方法,得到data表里面的數(shù)據(jù),得到Cursor對(duì)象
參數(shù):Uri對(duì)象,字段String[]數(shù)組(data1,mimetype),條件String,條件值String[]數(shù)組(contact_id)
Uri對(duì)象是Uri.parse(“content://com.android.contacts/data”)
循環(huán)和上面一樣
姓名對(duì)應(yīng)的類(lèi)型是vnd.android.cursor.item/name
電話對(duì)應(yīng)的類(lèi)型是vnd.android.cursor.item/phone_v2
需要權(quán)限,android.permisssion.READ_CONTACTS
調(diào)用ListView對(duì)象的setAdapter()方法,分配數(shù)據(jù)到視圖,參數(shù)是Adapter對(duì)象
通過(guò)new SimpleAdapter()來(lái)獲得Adapter對(duì)象
參數(shù):上下文,數(shù)據(jù)集合,布局資源,字段String[]數(shù)組,控件int[] id數(shù)組
package com.qingguow.mobilesafe.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
/**
* 讀取手機(jī)聯(lián)系人
* @author taoshihan
*
*/
public class PhoneContactsUtil {
public static List<Map<String,String>> getContacts(Context context){
ContentResolver resolver=context.getContentResolver();
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri=Uri.parse("content://com.android.contacts/data");
List<Map<String,String>> contacts=new ArrayList<Map<String,String>>();
//循環(huán)聯(lián)系人表
Cursor cursor=resolver.query(uri, new String[]{"contact_id"}, null, null, null);
while(cursor.moveToNext()){
String id=cursor.getString(cursor.getColumnIndex("contact_id"));
if(id!=null){
Map<String,String> contact=new HashMap<String,String>();
//查找數(shù)據(jù)表
Cursor dataCursor=resolver.query(dataUri, new String[]{"data1","mimetype"},"raw_contact_id=?", new String[]{id}, null);
while(dataCursor.moveToNext()){
String data1=dataCursor.getString(dataCursor.getColumnIndex("data1"));
String mimetype=dataCursor.getString(dataCursor.getColumnIndex("mimetype"));
System.out.println("data1:"+data1+",mimetype:"+mimetype);
if(mimetype.equals("vnd.android.cursor.item/name")){
contact.put("name", data1);
}else if(mimetype.equals("vnd.android.cursor.item/phone_v2")){
contact.put("phone", data1);
}
}
contacts.add(contact);
dataCursor.close();
}
}
cursor.close();
return contacts;
}
}
以上內(nèi)容是小編給大家介紹的android 手機(jī)衛(wèi)士讀取聯(lián)系人的相關(guān)介紹,希望對(duì)大家有所幫助!
- Android實(shí)現(xiàn)獲取聯(lián)系人電話號(hào)碼功能
- Android獲取聯(lián)系人姓名和電話代碼
- Android手機(jī)衛(wèi)士之獲取聯(lián)系人信息顯示與回顯
- Android API開(kāi)發(fā)之SMS短信服務(wù)處理和獲取聯(lián)系人的方法
- Android獲取聯(lián)系人頭像的方法
- android獲取聯(lián)系人示例分享
- Android編程基于Contacts讀取聯(lián)系人的方法(附demo源碼)
- Android控件ListView用法(讀取聯(lián)系人示例代碼)
- Android使用Intent獲取聯(lián)系人信息
相關(guān)文章
淺談Android安全風(fēng)險(xiǎn)與防范措施
這篇文章主要介紹了淺談Android安全風(fēng)險(xiǎn)與防范措施,對(duì)安全感興趣的同學(xué)可以參考下2021-04-04
Intent傳遞對(duì)象之Serializable和Parcelable的區(qū)別
Intent在不同的組件中傳遞對(duì)象數(shù)據(jù)的應(yīng)用非常普遍,大家都知道在intent傳遞對(duì)象的方法有兩種:1、實(shí)現(xiàn)Serializable接口、2、實(shí)現(xiàn)Parcelable接口,接下來(lái)通過(guò)本文給大家介紹Intent傳遞對(duì)象之Serializable和Parcelable的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Android ListView彈性效果的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Android ListView彈性效果的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2016-05-05
詳解android 中animation-list 動(dòng)畫(huà)的應(yīng)用
本篇文章主要介紹了詳解android 中animation-list 動(dòng)畫(huà)的應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
如何調(diào)用百度地圖API實(shí)現(xiàn)手機(jī)自動(dòng)定位
api手機(jī)自動(dòng)定位,通過(guò)聲明地址解析器,獲取當(dāng)前坐標(biāo),如何調(diào)用百度地圖api實(shí)現(xiàn)手機(jī)自動(dòng)定位呢?接下來(lái),一起跟小編來(lái)學(xué)習(xí)吧。2015-09-09
Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā)詳解
這篇文章主要為大家詳細(xì)介紹了Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android中使用socket使底層和framework通信的實(shí)現(xiàn)方法
native和framework的通信是通過(guò)jni,但是這一般只是framework調(diào)用native,native如果有消息要怎樣通知上層 呢?android中GSP模塊提供一種解決思路,但是實(shí)現(xiàn)有些復(fù)雜,這里介紹一種使用socket通信的方法可以使native和framework自由通信,感興趣的朋友一起看看吧2016-11-11

