EVENT_COLOR
задокументировано для записи адаптера синхронизации учетной записи, которой принадлежит календарь. Только приложение, владеющее календарем, должно записывать эти значения:
Это должно обновляться только адаптером синхронизации для данной учетной записи.
Возможно, ваше приложение может принудительно указывать определенные значения при непосредственном доступе к календарю (то есть не через намерение, а путем прямого запроса ContentResolver
, если у вас есть соответствующие разрешения). Тем не менее, они могут быть перезаписаны приложением-владельцем без уведомления, не обязательно синхронизируются между устройствами и могут вызвать другие проблемы в будущем. Я не рекомендую это.
Документация не так понятна для EVENT_COLOR_KEY
, поэтому столбец может быть опцией, если существует существующий цвет события, подходящий для вашего приложения (обратите внимание, что существующие цвета события могут зависеть как от календаря, так и от пользователя, не жесткие коды цветных клавиш!). Я бы предположил, что прямое использование ContentResolver
будет необходимо, использование Intent
работает только в том случае, если приложение календаря, выбранное пользователем, поддерживает эту функцию (я не знаю, поддерживают ли / поддерживают ли многие приложения календаря это).
Если вам нужны пользовательские цвета, которые работают независимо от существующих цветов календаря и установленного приложения календаря, вы можете создать свой собственный календарь, привязанный к вашему приложению. Назначить цвет всему календарю просто (CALENDAR_COLOR
). Поскольку ваше приложение является владельцем этого календаря, вы можете свободно изменять любой аспект каждого события.
Однако эти события не являются частью существующего календаря вашего пользователя: они не синхронизируются между устройствами и не предоставляют каких-либо специфических для поставщика функций (если таковые имеются). Если ваши события не являются статичными для всех пользователей, я бы не рекомендовал идти по этому маршруту.