往SIM卡联系人插入中带点的联系人,不显示点,但是电话本插入带点的联系人能正常显示.
1、 导出数据库比对差异
2、对比插入数据库
插入电话本 11-21 21:23:01.629041 10518 11423 V ContactsProvider: insertInTransaction: uri=content://com.android.contacts/data values=[mimetype=vnd.android.cursor.item/name raw_contact_id=2 data2=Df. Hn. is_super_primary=1] CPID=9369 CUID=10134
插入SIM卡 42951: 11-21 21:18:56.420409 10518 10569 V ContactsProvider: insertInTransaction: uri=content://com.android.contacts/data values=[mimetype=vnd.android.cursor.item/name raw_contact_id=1 data1=Hb.Bb] CPID=9369 CUID=10134
3、分析结论
1、手动添加联系人到电话本,联系人使用data2 + data3即名和姓
2、手动添加联系人到sim卡, 联系人使用data1即姓名,原生逻辑使用空格,逗号,点 等分割出名和姓,代码逻辑如此
具体代码在NameSplitter.java中
4、如果要显示点
可以将插入sim卡联系人中的data1替换成data2或data3