4

本文介绍了一种在Android应用中实现从手机通讯录导入联系人信息的方法。通过使用ContentResolver查询ContactsContract来获取联系人的姓名和电话号码,并对获取到的数据进行处理,确保不会重复导入已存在的联系人。

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

package com.example.sharingcontact;

import android.content.ContentResolver;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.provider.ContactsContract.CommonDataKinds.Phone;

public class Import {
	
	/*
	private void getPhoneContacts() {
		
        ContentResolver cr = getContentResolver();   
        
        //取得电话本中开始一项的光标   
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);   
        
        while (cursor.moveToNext())   
        {   
            // 取得联系人名字   
            int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);   
            String name = cursor.getString(nameFieldColumnIndex);   
           // string += (name);  
            
        
            // 取得联系人ID   
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));   
            Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,       ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
                    + contactId, null, null);   
          
            // 取得电话号码(可能存在多个号码)   
            while (phone.moveToNext())   
            {   
                String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));   
               // string += (":" + strPhoneNumber);   
                System.out.println("$$$获得联系人名字: " + name);           
                System.out.println("$$$获得联系人电话: " + strPhoneNumber);
                System.out.println("=========================================");
                 //先判断是否存在此人
                System.out.println("name--->"+name);
               if(!db.Query(name)) {
            	    db.Insert(name, strPhoneNumber, null, null, null,null) ;
            	    System.out.println("============可以导入--------------");
               } else {     	  
            	  //  db.Insert(name, strPhoneNumber, null, null, null) ;
            	    System.out.println("==========已经存在此人-------------");
               }
           
            }   
           // string += "\n";   
            phone.close();            
        }   
        cursor.close();   
        
    }
*/
	
}

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值