内部 Android カレンダーとアプリケーションの間で同期したいと考えています。Android API 14 以降で利用可能な CalendarContract を使用しています。
コンテンツ プロバイダー「com.android.calendar」を変更すると、同期アダプターの onPerformSync(..) が呼び出されます。ただし、この時点では、イベントのすべての行が DIRTY = 0 に設定されています。つまり、Google カレンダーの同期では、同期アダプターがそれらにアクセスできるようになる前に、DIRTY FLAG を 0 に設定する必要があります。
CalendarContract.EventsColumns.SYNC_DATA1 - SYNCDATA10 は、同期アダプターで使用するためのコンテンツ プロバイダーの列と呼ばれます。これらの列の用途について何らかの規則があるかどうかは誰にもわかりませんか? 私のデバイスでは、SYNC_DATA5 に最終更新日が保存され、SYNC_DATA1 に Google イベント ID が保存されているようです。そのため、カレンダー アプリが Google カレンダーと同期するたびに、これらの列が変更されるようです。
ただし、これらの列のいずれかを同期アダプターに使用することを選択した場合、別のアプリケーションがまったく同じ列を使用せず、それらが互いにオーバーライドしないようにするにはどうすればよいでしょうか?
Google カレンダーが SYNC_DATA5 を常に使用して最終更新日を保存している場合、それを同期ロジックに使用するだけで問題ありません。これが規則であることを確認する必要があります。