2017-01-05 21 views
2

以下のコードを検討してください。例として、displayName = "Squirrel、Rocky J."連絡先に「Rocky J. Squirrel」と表示されます。私は「Squirrel、Rocky 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により示唆されるように設定を変更した後
...私は「トルストイ」と「ラングストン・ヒューズ」 を持っている場合、私のように、連絡先リストを見ることを期待する:

H
ヒューズ、ラングストン
T
代わりに私が見 トルストイ、レオ

(サムスンSM-T530)

L
ヒューズ、ラングストン
トルストイ、レオ

(画素C上)

H
ラングストン・ヒューズ
T
トルストイ

そうではないだけ表示が見えるんデバイスに依存して混乱するため、プログラムで制御することはできません。

答えて

1

連絡先を(いずれかのプログラム的または接触編集画面を介して)追加すると、Contactsコンテンツ・プロバイダが挿入された名前を解析し、名前フィールドに分割しようとします。prefixfirstmiddlelastsuffixnickname

はその後、名前が「First Last」、または「Last, First」と、設定に応じていずれかContacts/Peopleアプリで示すことができます。

名表示オプショントグルします場合は、次のメニューをクリックし、株式Contactsアプリで

を>>Name Formatsettings>Last name firstを選択します。 Sort byName format:連絡先アプリがデバイスが、上記の設定ページ内のほとんどのディスプレイに少なくとも2つのオプションのビット異なる場合があります

UPDATE

システム。

上記の例から、両方の設定をLast Nameに変更したいと思います。プログラム的にこれらの値を変更することについて

、このアプリが持っている権限に応じ、可能かもしれないが、このような何か:value1または2ある

Settings.system.putInt(getContentResolver(),"android.contacts.SORT_ORDER", value); 

。 これを読んで必要なアクセス許可を理解してください。https://developer.android.com/reference/android/provider/Settings.System.html#canWrite(android.content.Context)

関連する問題