Запуск Android Calendar для синхронизации после добавления событий программно - PullRequest
3 голосов
/ 17 августа 2011

Я использую «недокументированные» API для чтения и записи событий календаря, ничего сложного. Проблема, однако, заключается в том, что после создания событий в календаре необходимо дождаться периода опроса (я полагаю), чтобы устройство синхронизировало свой календарь, например, с gmail, чтобы события появлялись в сети. Я обнаружил, что если вы добавите событие в календарь напрямую, оно будет синхронизировано сразу, поэтому что-то в приложении Календарь запускает немедленную синхронизацию.

Могу ли я что-то сделать в коде, чтобы уведомить устройство о синхронизации календаря по завершении добавления новых событий?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 августа 2016
public void syncCalendars()
    {
        Account[] accounts = AccountManager.get(context).getAccounts();
        Log.d(TAG, "Refreshing " + accounts.length + " accounts");
        String authority = CalendarContract.Calendars.CONTENT_URI.getAuthority();
        for (int i = 0; i < accounts.length; i++) {

            Log.d(TAG, "Refreshing calendars for: " + accounts[i]);

            Bundle extras = new Bundle();
            extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
            ContentResolver.requestSync(accounts[i], authority, extras);
        }
    }
2 голосов
/ 17 августа 2011

Класс ContentResolver имеет различные вспомогательные методы для работы с синхронизацией. Попробуйте метод ContentResolver.requestSync () .

...