android学习笔记33--------------通过号码获得联系人(识别飞信号与+86等号码问题)

本文介绍了一种通过处理特殊格式的电话号码(如飞信号码或+86开头的号码),来实现从联系人列表中准确查找对应联系人姓名的方法。通过修改现有程序并调整号码格式,可以解决因号码格式不同导致的联系人识别问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明原文出处:奔跑的蜗牛(袁方的技术博客)http://blog.youkuaiyun.com/yf210yf

读到短信常有些飞信号码或+86等号码,在联系人中没有存储,下面稍微改了下已有的程序,让已有的联系人号码不因 飞信号码 或 +86号码不能识别

/**
	 * 通过电话号码获取姓名
	 */
	public String getContactNameFromPhoneNum(Context context, String phoneNum)
	{
		String contactName = "";
		
		//处理电话号码格式问题
		if (phoneNum.length()>11)
		{
			ContentResolver cr = context.getContentResolver();
			Cursor pCur = cr.query(
					ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
					ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?",
					new String[]
					{ phoneNum }, null);
			if (pCur.moveToFirst())
			{
				contactName = pCur
						.getString(pCur
								.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
				pCur.close();
			}
			if (contactName.equals(""))
			{
				phoneNum=phoneNum.substring(phoneNum.length()-11);
				System.out.println(phoneNum);
			}		
		}		
		
		ContentResolver cr = context.getContentResolver();
		Cursor pCur = cr.query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
				ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?",
				new String[]
				{ phoneNum }, null);
		if (pCur.moveToFirst())
		{
			contactName = pCur
					.getString(pCur
							.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
			pCur.close();
		}
		return contactName;
	}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值