zoukankan      html  css  js  c++  java
  • 读取手机联络人实例

    项目中需要做一个关于联络人的模块,先搭建了一个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);
    	}
    
    }
    


  • 相关阅读:
    XmlDocument和XDocument转String
    C# 6.0 (C# vNext) 新功能之:Null-Conditional Operator(转)
    <%%>与<scriptrunat=server>,<%=%>与<%#%>的区别(转)
    WINDOWS的用户和用户组说明
    C#获取网页内容的三种方式(转)
    C#操作XML方法:新增、修改和删除节点与属性
    linq to xml操作XML(转)
    C#使用tesseract3.02识别验证码模拟登录(转)
    C#修饰符
    SQL语句备份和还原数据库(转)
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748304.html
Copyright © 2011-2022 走看看