6

사용자 계정 유형을 만들었으며 android ContactsContract ContentProvider에서 해당 유형의 연락처를 만들 수 있습니다. 하지만 기본 연락처 앱에서 연락처를 수정할 때 내 맞춤 계정 라벨 및 아이콘을 표시하는 방법을 파악하는 데 많은 어려움을 겪고 있습니다.내 계정 유형을 Android 연락처 앱에 표시하려면 어떻게해야하나요?

맞춤 연락처 유형을 편집 할 때 라벨은 앱 아이콘이 오른쪽에있는 '연락처'와 같아야합니다. 대신 내 유형의 연락처를 수정하면 항상 "전화 전용, 동기화되지 않은 연락처"라벨이 표시됩니다. 예제는 아래 첫 번째 스크린 샷을 참조하십시오.

이상한 점은 틀린 레이블 아래의 스크린 샷 ("+1415"로 시작)에서 볼 수있는 계좌 이름을 찾는 것입니다.

그리고 계정의 설정 앱에 내 앱의 라벨과 아이콘을 성공적으로 표시하여 올바르게 작업하고 있음을 알고 있습니다. 그 증명에 대해서는 아래 두 번째 스크린 샷을 참조하십시오 (계정 레이블은 "볼트"입니다).

Editing a custom contact in the Android contacts appSettings app with custom account label and icon

I 다음 authenticator.xml 있습니다

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="@string/account_type" 
    android:label="@string/app_name" 
    android:icon="@drawable/app_icon" 
    android:smallIcon="@drawable/app_icon" /> 

을 그리고 이것은 내 syncadapter.xml입니다 :

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" 
    android:contentAuthority="@string/contacts_content_authority" 
    android:accountType="@string/account_type" 
    android:userVisible="true" 
    android:allowParallelSyncs="false" 
    android:isAlwaysSyncable="true" 
    android:supportsUploading="false" /> 

사람이 어디 갈거야 날 지점 수 이걸로 잘못 됐어? 필요한만큼 더 많은 정보를 제공 할 수 있습니다. CLIENT_IS_SYNCADAPTER 매개 변수를 사용하여 SyncAdapter 내에서 연락처를 만들려고 시도했지만 아무 것도 변경하지 않았습니다. 나는 몇 가지 다른 것들도 시도했지만 아직 아무것도 작동하지 않습니다.

답변

3

마침내 문제가 무엇인지 알아 냈습니다.

sync-adapter 요소에 android:contentAuthority 특성이 내 연락처 ContentProvider에 대한 사용자 지정 콘텐츠 권한으로 설정되었습니다. 이는 기술적으로 연락처 데이터를 쿼리하고 쓰는 데 사용됩니다. 하지만 연락처가 기본 연락처 앱에 표시되도록하려면이 속성을 "com.android.contacts"으로 설정해야합니다.

+0

동기화 된 연락처가 여전히 "전화 전용, 동기화되지 않은 연락처"로 표시 되나요? 답마다 SyncAdapter의 android : contentAuthority 선언을 변경했기 때문에 마침내 Contacts 앱에서 내 계정 유형을 볼 수 있었지만 내 앱에서 동기화 된 연락처는 여전히 연락처 애플리케이션에 "phone- 만, unsynced ". –

+0

이 문제는 여전히 문제가 아니라고 생각했지만 내 연락처에 더 이상 "전화 전용, 동기화되지 않은 연락처"가 표시되지 않았는지 확인하고 확인했습니다. 아마도 이것은 삽입/업데이트 할 때 CLIENT_IS_SYNCADAPTER를 사용하는 것과 관련이 있을까요? – amb