Android11源码中特殊符号的联系人会被分组到“...”组里面,这和目前现有手机厂商联系人APP不一致,于是需要把特殊符号的联系人显示到“#”分组里面。这明显就需要改数据层面的代码,而Contacts对应的数据库,是在ContactsProvider里面,所以需要修改packages/providers/ContactsProvider模块,共需修改两处:
1.ContactsProvider2.java的getFastScrollingIndexExtras(),这里是从数据库取值的时候,直接把“...”替换成“#”
......
try {
int numLabels = indexCursor.getCount();
String labels[] = new String[numLabels];
int counts[] = new int[numLabels];
for (int i = 0; i < numLabels; i++) {
indexCursor.moveToNext();
labels[i] = indexCursor.getString(AddressBookIndexQuery.COLUMN_LABEL);
counts[i] = indexCursor.getInt(AddressBookIndexQuery.COLUMN_COUNT);
if(DEFAULT_SNIPPET_ARG_ELLIPSIS.equals(labels[i])){
labels[i] = "#";
}
}
return FastScrollingIndexCache.buildExtraBundle(labels, co