• 读取手机联络人实例


    项目中需要做一个关于联络人的模块,先搭建了一个demo.顺便总结查询手机联络人的名字和号码的知识

    例子很简单,直接贴代码:

       

    package com.kris.contacts;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    public class MainActivity extends Activity {
    	
    	private static Uri URI_PHONE = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
    	private static Uri URI_DATA = ContactsContract.Data.CONTENT_URI;
    	
    	static private String[] CONTACTS_PHONE = new String[] {
    		ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
    		ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
    		ContactsContract.CommonDataKinds.Phone.NUMBER};
    
    	static private String[] CONTACTS_DATA = new String[] {
    		ContactsContract.CommonDataKinds.StructuredName.CONTACT_ID,
    		ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
    		ContactsContract.CommonDataKinds.StructuredName.PREFIX,
    		ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
    		ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,
    		ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
    		ContactsContract.CommonDataKinds.StructuredName.SUFFIX };
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		
    		setContentView(R.layout.activity_main);
    		ListView txv = (ListView) findViewById(R.id.lsv_contact);
    		
            String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
    		Cursor curPhone = getContentResolver().query(URI_PHONE, CONTACTS_PHONE, null, null, sortOrder);
    		int m_intContactDiaplayName = curPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
    		int m_intPhone = curPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
    		ArrayList<String> m_aryContactsData = new ArrayList<String>(); 
       		if (curPhone.moveToFirst()){
       			do
       			{                  
       				// 自 curPhone 中取出各自欄位的資料
       				String m_strContactDiaplayName = curPhone.getString(m_intContactDiaplayName);                  
       				String m_strPhone = curPhone.getString(m_intPhone);
       				
       				// 若此人資料已經存在,就不重覆加入
       				int iContactPos = m_aryContactsData.indexOf(m_strContactDiaplayName + "
    <" + m_strPhone + ">");
       	    		if (iContactPos < 0){
       	    			m_aryContactsData.add(m_strContactDiaplayName + "
    <" + m_strPhone + ">");
       	    		}
       			}while(curPhone.moveToNext());
       		}
       		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,
    				m_aryContactsData.toArray(new String[m_aryContactsData.size()]));
       		txv.setAdapter(adapter);
    	}
    
    }
    


  • 相关阅读:
    MySQL学习笔记(12):触发器
    MySQL学习笔记(11):存储过程和函数
    MySQL学习笔记(10):视图
    MySQL学习笔记(9):索引
    MySQL学习笔记(8):字符集
    MySQL学习笔记(7):存储引擎
    MySQL学习笔记(6):常用函数
    MySQL学习笔记(5):运算符
    MySQL学习笔记(4):数据类型
    MySQL学习笔记(3):SQL
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748304.html
Copyright © 2020-2023  润新知