【发布时间】:2017-01-10 00:05:50
【问题描述】:
考虑下面的代码。例如,如果displayName = "松鼠,洛基 J."然后它在联系人中显示为“Rocky J. Squirrel”。我想按原样输入,即“松鼠,洛基 J”。但是在docs 中,我不认为这是一种选择。
我该怎么做?
if (displayName != null) {
contentProviderOperationArrayList.add(ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
displayName)
.build());
}
编辑:
按照 marmor 的建议更改设置后......如果我有“Leo Tolstoy”和“Langston Hughes”
我希望看到的联系人列表为:
H
休斯,兰斯顿
T
托尔斯泰,里奥
我看到的是(在三星 SM-T530 上)
L
休斯,兰斯顿
托尔斯泰,里奥
(在像素 C 上)
H
兰斯顿休斯
T
托尔斯泰
因此,显示不仅看起来与设备相关且令人困惑,而且似乎无法以编程方式控制。
【问题讨论】:
-
考虑使用 DISPLAY_NAME_ALTERNATIVE (developer.android.com/reference/android/provider/…)