Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 淺析Android手機衛士讀取聯系人

淺析Android手機衛士讀取聯系人

編輯:關於Android編程

推薦閱讀:

淺析Android手機衛士sim卡綁定

深入淺析Android手機衛士保存密碼時進行md5加密

詳解Android 手機衛士設置向導頁面

淺析Android手機衛士關閉自動更新

淺析Android手機衛士自定義控件的屬性

獲取ContentResolver內容解析器對象,通過getContentResolver()方法

調用ContentResolver對象的query()方法,得到raw_contacts表裡面的數據,得到Cursor對象

參數:Uri對象,字段String數組

獲取Uri對象,通過Uri.parse(“content://com.android.contacts/raw_contacts”)方法,

while循環Cursor對象,條件是Cursor對象moveToNext()方法為真

調用Cursor對象的getString()方法,參數是索引

判斷不為null,查詢另一張表

調用ContentResolver對象的query()方法,得到data表裡面的數據,得到Cursor對象

參數:Uri對象,字段String[]數組(data1,mimetype),條件String,條件值String[]數組(contact_id)

Uri對象是Uri.parse(“content://com.android.contacts/data”)

循環和上面一樣

姓名對應的類型是vnd.android.cursor.item/name

電話對應的類型是vnd.android.cursor.item/phone_v2

需要權限,android.permisssion.READ_CONTACTS

調用ListView對象的setAdapter()方法,分配數據到視圖,參數是Adapter對象

通過new SimpleAdapter()來獲得Adapter對象

參數:上下文,數據集合,布局資源,字段String[]數組,控件int[] id數組

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;
/**
* 讀取手機聯系人
* @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>>();
//循環聯系人表
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>();
//查找數據表
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;
}
}

以上內容是小編給大家介紹的android 手機衛士讀取聯系人的相關介紹,希望對大家有所幫助!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved