根据联系人号码获取sort_key以实现按字母排序

Android按照拼音排序获取联系人并根据拼音首字母获取联系人 在写安卓程序的时候,需要获取联系人的信息,需求是根据联系人姓名拼音的首字母查询联系人的信息,也就是说给定一个字母,要查出所有的拼音以该字母开头的联系人。在网上看了好多博客,都建议说使用SORT_KEY_PRIMARY字段,看了下Android源码,该字段返回的的确是拼音拼写,然而我用的时候,它返回的还是联系人的名称,没有拼音!说明一下,我用的是Android6.0系统。我百思不得其解,为什么呢?再 阅读详情

原理如下,根据联系人号码获得相关联系人的RAW_ID。

		ContentResolver resolver = mContext.getContentResolver();
		// Phone里面的数据
		Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,
				PHONES_PROJECTION, null, null, null);
		if (phoneCursor != null) {
			while (phoneCursor.moveToNext()) {
				// 读取联系人号码
				int phoneNumberIndex = phoneCursor.getColumnIndex(Phone.NUMBER);
				String phoneNumber = phoneCursor.getString(phoneNumberIndex);
				if (TextUtils.isEmpty(phoneNumber))
					continue;
				int contactNameIndex = phoneCursor
						.getColumnIndex(Phone.DISPLAY_NAME);
				String contactName = phoneCursor.getString(contactNameIndex);
				// 根据RAW_ID读取sort_key
				int rawContactIdIndex = phoneCursor
						.getColumnIndex(Phone.CONTACT_ID);
				Long rawContactId = phoneCursor.getLong(rawContactIdIndex);
				String sortKey = getSortKeyString(rawContactId);
			}
			phoneCursor.close();
		}

再根据RAW_ID在raw_contacts表中查询到联系人的sort_key。

	private String getSortKeyString(long rawContactId) {
		String Where = ContactsContract.RawContacts.CONTACT_ID + " ="
				+ rawContactId;
		String[] projection = { "sort_key" };
		Cursor cur = mContext.getContentResolver().query(
				ContactsContract.RawContacts.CONTENT_URI, projection, Where,
				null, null);
		int sortIndex = cur.getColumnIndex("sort_key");
		cur.moveToFirst();
		String sortValue = cur.getString(sortIndex);
		cur.close();
		return sortValue;
	}

均匀分布产生高斯分布 均匀分布产生高斯分布 文章目录均匀分布产生高斯分布简介方法和证明代码效果引用 简介 方法和证明 代码 效果 引用 阅读详情

相关推荐

基于OpenCV C++实现工业级形状模板匹配:仿Halcon SBM算法全解析

在计算机视觉和工业自动化领域,模板匹配是一项基础且关键的技术,用于在图像中定位已知目标。其核心原理是通过计算图像区域与预设模板之间的相似度来识别目标位置。传统的基于灰度值的匹配方法对光照变化敏感,鲁棒性不足。而基于边缘梯度方向的形状匹配技术,通过计算轮廓梯度方向的一致性进行相似度度量,从根本上提升了对光照变化的鲁棒性,并支持目标的旋转与缩放,技术价值显著。这项技术广泛应用于工业视觉检测、机器人引导、PCB定位等对精度和稳定性要求极高的场景。本文聚焦于使用开源OpenCV库,从底层仿照Halcon的Shape

weixin_33691817的博客 500

理解sort()函数中的key

最近在看effective-python,第二章函数中提到了优先排序的概念,具体代码如下: values = [1, 5, 3, 9, 7, 4, 2, 8, 6] group = [7, 9] def sort_priority(values, group): def helper(x): if x in group: ...

zxc的博客 1950

别再死磕SPWM了!手把手教你用STM32实现SVPWM驱动PMSM电机(附代码)

本文详细介绍了如何使用STM32实现SVPWM驱动PMSM电机,对比传统SPWM方案,SVPWM在电压利用率、电流THD、转矩脉动和稳态温升等方面均有显著提升。通过克拉克变换优化、扇区快速判断和矢量作用时间补偿等核心算法,结合STM32硬件加速技巧,实现高效电机控制。附代码示例,助力开发者快速掌握SVPWM技术。

weixin_28733777的博客 273

关于自己理解的sort()函数中的key

sort函数原型sort(key=None, reverse=False)key 可指定一些规则reverse 默认值是False可以给它赋值成True,那就是反向排序Example:当我们有一个需要排序的字典它里面的键是一本小说所有的单词(不重复的,若是字典中出现重复的键,只会读取到最后一个键)它里面的值是这本小说中所有单词出现的次数Instance:d = { 'beautiful':...

a_newbie_007的博客 1万+

RU.EXE实用指南:从基础操作到高级调试技巧

本文是RU.EXE(RW Everything)的实用指南,详细介绍了这款硬件调试工具从基础操作到高级技巧的全过程。文章阐述了RU.EXE作为直接读写硬件寄存器、内存和PCI配置空间的强大工具,如何帮助硬件工程师和开发人员高效进行底层系统调试与故障排查,并强调了安全操作的重要性。

weixin_29228203的博客 278

YOLOv13多分支融合机制+SE注意机制 RepVGGBlock_OREPA架构 map提升4.89,召回率提升8.66

本文提出了一种改进的YOLOv13目标检测模型,通过引入RepVGGOREPA模块和重参数化技术,显著提升了模型性能。实验结果表明,采用RepVGGBlock后,mAP提升4.89,召回率提升8.66%。文章详细介绍了模型移植过程,包括创建YOLOv13-REPVGGOREPA配置文件、修改任务处理代码和模块初始化文件,并提供了完整的OREPA模块实现代码。该模块通过多尺度特征融合和SE注意力机制,实现了训练时的丰富表征能力和推理时的高效计算,为YOLO系列模型提供了新的优化思路。

FJN110的博客 2650

python中sort函数用法_python中sort()函数的key参数用法(转载)

今天在学习匿名函数lambda的时候遇到了一个没怎么想明白的问题。strings = ['foo', 'card', 'bar', 'aaaa', 'abab']# 根据字符串中不同字母的数量对一个字符串集合进行排序strings.sort(key=lambda x: len(set(list(x))))上面strings输出的结果为:[‘aaaa’, ‘foo’, ‘abab’, ‘bar’, ...

weixin_39859715的博客 857

亲测解决This application failed to start because no Qt platform plugin could be initialized.

这个问题是由于环境变量改变或者Qt的路径改变导致,解决办法是在环境变量里面重新添加Qt路径。

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 2920

Python中sort()中key的用法(两个例子)

Python中sort()函数中key参数的用法。

Raintail的博客 7006

LSTM 双向 Bi-LSTM

LSTM 双向 Bi-LSTM

jacke121的专栏 1516

Spring Security 珍藏版快速入门

文章目录一、前期配置二、Spring Security 测试三、案例:自定义页面(XML配置用户信息)三、案例:自定义页面(数据库存储用户信息) 一、前期配置 (1)pom.xml <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${s

南淮北安的博客 633

sort()函数列表排序

sort()函数用于列表的排序 sort(key=函数,reverse=True)函数共有两个参数:key和reverse sort( )默认升序 key,用于指定一个函数,即key=函数,即为排序提供一种方法 reverse=True,意为翻转的意思,可以呈现为降序排序等 比较相邻的数,从大到小排列 li = [1, 3, 10, 9, 21, 35, 4, 6] li.sort() print(li) 比较相邻的数,从小到大排列 li = [1, 3, 10, 9, 21, 35, 4, 6] li.s

还需努力的杨小花的博客 1794

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android5.0联系人 sort_key改成phonebook_label

项目中用到了联系人根据字母排序,在android4.0手机上是可以的,但是在android4.4以上的手机排序是乱的,一般字母排序都是根据sort_key这个拼音进行排序,而android5.0这个字段没有保存拼音,直接是汉字. 于是我把4.4的手机上联系人db文件查看了一下,发现phonebook_label保存的是联系人姓名拼音首字母 如何使用ad...

dengshuo4753的博客 308

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

根据联系人姓名首字符顺序读取通讯录

package com.zzw.contacts; import java.util.ArrayList; import android.app.ListActivity; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import

xzylx1的博客 596

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android实现系统联系人字符分组以及字母表导航效果 .

功能的实现结合了网上很多非常的好的实现,小小的优化看下。 实现思路: 1. 获取手机联系人列表:通过Uri uri = Uri.parse("content://com.android.contacts/data/phones");  查询联系人列表 2 联系人的字段非常的多,摘取了NAME = "name", NUMBER = "number", SORT_KEY = "sort_key"

5923

Android 获取系统联系人并排序

今天我要说的是获取Android手机里面联系人并按自己进行排序的方法。 在说这个之前,我只能说之前的自己真的很傻,为什么这么说呢,请大家看看之前的我是怎么做的? 之前的我:首先是通过获取系统的联系人,将名字转换成汉语拼音(在这个过程还用到了汉语拼音转换包),然后获取首字母进行排序,结果就是功能是实现了,但是相当复杂。 后来的我:直接在获取联系人的时候,也获取到了名字的拼音的拼写,然后自动排序

chuyouyinghe的专栏 806

java 通讯录姓名分组_根据联系人姓名首字符顺序读取通讯录

1 packagecom.zzw.contacts;23 importjava.util.ArrayList;45 importandroid.app.ListActivity;6 importandroid.content.ContentResolver;7 importandroid.content.Context;8 importandroid.database.Cursor;9 impor...

weixin_42522912的博客 847

玩爆你的手机联系人--T9搜索(一)

自己研究了好几天联系人的T9搜索算法, 先分享出来给大家看看. 欢迎不吝赐教.假设有大神有更好的T9搜索算法, 那更好啊,大家一起研究研究,谢谢. 第一部分是比較简单的获取手机联系人. 获取联系人前提要有权限. <uses-permission ...

weixin_30726161的博客 395

玩爆你的手机联系人--T9搜索

自己研究了好几天联系人的T9搜索算法, 先分享出来给大家看看. 欢迎指教.如果有大神有更好的T9搜索算法, 那更好啊,大家一起研究研究,谢谢. 第一部分是比较简单的获取手机联系人. 获取联系人前提要有权限. <uses-permission android:name="android.permission.READ_CONTACTS" /> 因...

287

Android根据联系人姓名首字符顺序读取通讯录

转自:http://blog.youkuaiyun.com/zhangphil/article/details/47250747 本文给出了Android读取通讯录联系人的一般方法,且在读取Android通讯录联系人时候,将结果有序化(按照联系人姓名的首字符依次顺序读取:A ~ Z)。 读取的结果如图所示: 现给出实现该种Android通讯录读取的代码: packa

狂奔的奶牛 975

java 通讯录姓名分组_Android根据联系人姓名首字符顺序读取通讯录

本文给出了Android读取通讯录联系人的一般方法,且在读取Android通讯录联系人时候,将结果有序化(按照联系人姓名的首字符依次顺序读取:A ~ Z)。读取的结果如图所示: 现给出实现该种Android通讯录读取的代码:package zhangphil.contacts;import java.util.ArrayList;import android.app.ListActivity;im...

weixin_39557199的博客 286
上一篇: Android使用tcpdump抓包
下一篇: 关于launcher改变tabs_container和tabhost位置引发的血案
Harlan9001
博客等级 码龄14年 228粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值