連絡先をバックエンドと同期するアプリに取り組んでいます。アプリを削除すると連絡先は削除されますが、アプリを再インストールするとバックエンドから連絡先が復元されます。最初の同期の後、データが変更されていないため、連絡先を再度同期したくありません。そのためuri.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true");
、復元した RawContact を挿入するときに使用します。ただし、Dirty フラグはまだ 1 に設定されているため、連絡先は不要で再度同期されます。どうすればこれを防ぐことができますか?
挿入時にダーティ フィールドを 0 に設定builder.withValue(ContactsContract.RawContacts.DIRTY, 0);
しましたが、これは役に立ちません。
initialsync フラグのカスタム データを追加することを考えましたが、連絡先の編集はアプリの外部で実行できるため、誰かがアプリの外部で連絡先を編集するときにこれを false に設定することはできません。