Android获取手机联系人信息的方法

1 给程序添加访问手机联系人信息的权限

 <uses-permission android:name="android.permission.READ_CONTACTS"/> 

获取手机和 sim卡的方式 除了 uri地址不一样,别的都一样的

获取电话上的

	private void getPhoneContacts() {  
	    ContentResolver resolver = this.getContentResolver();  
	      
	    // 获取手机联系人  
	   Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,
					new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME,
							Phone.NUMBER },
					Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='"
							+ Phone.TYPE_MOBILE + "'", new String[] { "name" }, null);
		HashMap<String, String> map = new HashMap<String, String>();
	   
	   if (phoneCursor != null) {
			while (phoneCursor.moveToNext()) {
				String number = phoneCursor.getString(2);
	            		// 当手机号码为空的或者为空字段 跳过当前循环  
	            		if (TextUtils.isEmpty(number))  
	                		continue;
				// 得到联系人名称				
				String username = phoneCursor.getString(1);
	           	map.put(username, number);


			}
			phoneCursor.close();
		} 
	   System.out.println("phone"+map);
	   Log.i("abc", map.toString());
	   Toast.makeText(this, "222"+map.toString(),1 ).show();
	}


获取sim卡上的

	private void getSimContacts() {  
	    ContentResolver resolver = this.getContentResolver();  
	    Uri uri = Uri.parse("content://icc/adn"); 
	    // 获取手机联系人  
	   Cursor phoneCursor = resolver.query(uri,
					new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME,
							Phone.NUMBER },
					Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='"
							+ Phone.TYPE_MOBILE + "'", new String[] { "name" }, null);
		HashMap<String, String> map = new HashMap<String, String>();
	   
	   if (phoneCursor != null) {
			while (phoneCursor.moveToNext()) {
				String number = phoneCursor.getString(2);
	            		// 当手机号码为空的或者为空字段 跳过当前循环  
	            		if (TextUtils.isEmpty(number))  
	                		continue;
				// 得到联系人名称				
				String username = phoneCursor.getString(1);
	           	map.put(username, number);

			}
			phoneCursor.close();
		} 
	   System.out.println("sim"+map);
	   Log.i("abc", map.toString());
	   Toast.makeText(this, map.toString(),1 ).show();
	}
	

3 在手机上更能体现出效果,结果不太好演示,但是是可以获取信息的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值