Я использую SyncAdapter, который синхронизирует данные с сервера Microsoft Exchange с собственным контактом устройства.
Однако обмен имеет некоторые ограничения на DataKinds , например, разрешено только 3 идентификатора электронной почты для каждого типа Home, Work, Mobile и т. Д. Аналогично для других предопределенных MimeTypes.
Я хочу, чтобы приложение родных контактов учитывало это при редактировании / создании нового контакта.
Я добавил метаданные в мои syncadapter.xml
<meta-data android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts"/>
Я определил EditSchema в contacts.xml
, как показано ниже:
<ContactsAccountType
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditSchema
>
<DataKind kind="name"
maxOccurs="1"
supportsDisplayName="true"
supportsPrefix="true"
supportsMiddleName="true"
supportsSuffix="true"
supportsPhoneticFamilyName="true"
supportsPhoneticMiddleName="true"
supportsPhoneticGivenName="true"
>
</DataKind>
<DataKind kind="photo" maxOccurs="1" />
<DataKind kind="phone" maxOccurs="3">
<Type type="mobile" />
<Type type="home" />
<Type type="work" />
<Type type="fax_work" />
<Type type="fax_home" />
<Type type="pager" />
<Type type="other" />
<Type type="custom"/>
<Type type="callback" />
<Type type="car" />
</DataKind>
<DataKind kind="email" maxOccurs="3">
<Type type="home" />
<Type type="work" />
<Type type="other" />
<Type type="mobile" />
</DataKind>
<DataKind kind="nickname" maxOccurs="1" />
<DataKind kind="im" >
<Type type="aim" />
<Type type="msn" />
<Type type="yahoo" />
<Type type="skype" />
<Type type="qq" />
<Type type="google_talk" />
<Type type="icq" />
<Type type="jabber" />
<Type type="custom" />
</DataKind>
<DataKind kind="postal" needsStructured="false" >
<Type type="home" />
<Type type="work" />
<Type type="other" />
<Type type="custom" />
</DataKind>
<DataKind kind="organization" maxOccurs="1" />
<DataKind kind="website" />
<DataKind kind="sip_address" maxOccurs="1" />
<DataKind kind="note" maxOccurs="1" />
</EditSchema>
</ContactsAccountType>
Но экран редактирования в Native, похоже, не соблюдает это. Он возвращается к окну редактирования по умолчанию, где пользователю разрешено редактировать / добавлять без каких-либо ограничений. Но я не могу синхронизировать их с моим сервером, так как он не поддерживается.
Где я делаю не так? Это устройство зависит?