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);
    	}
    
    }
    


  • 相关阅读:
    记录一次redis-shake跨云迁移阿里云redis混合型到腾讯云tendis
    nginx 通过配置文件切割访问日志
    saltstack 批量修改hostname
    linux 免交互式修改密码
    zabbix 接入钉钉机器人报警
    监控体系
    zabbix自动化监控三种方式
    zabbix 自定义脚本监控activemq
    2021.07.20 总结
    微信小程序总结
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748304.html
Copyright © 2011-2022 走看看