2017-01-11 3 views
0

У меня есть * .ics файл, который возвращался из ответа API, и я пытаюсь добавить его в календарь пользователей (через функцию добавления события календаря). Было бы что-то вроде этого в iOS: How can I open calendar .ics files in ios?Как добавить событие календаря с ICS-файлом (URL) в Android от намерения?

Я искал вокруг, но похоже, что обработчик действия по умолчанию не добавляет файл ics из url? До сих пор я попробовал эти решения:

, но ни один не доступен для обработки файла ICS.

Они работают отлично с той же целью, но в моей текущей ситуации мы хотим, чтобы обработчики действий были одинаковыми на всех платформах и использовали один и тот же ответ api (возвращает загружаемый uri файла .ics).

Кто-нибудь сталкивается с такой же ситуацией? Или если кто-нибудь знает, как работает Gmail, если вы отправляете/прикрепляете файл ics внутри (он может добавить это событие в календарь)?

ответ

1

Нет никакого обработчика действий по умолчанию для добавления файла ics из url?

Исправить. Android - это ОС. Это не приложение для календаря.

Из тысячи моделей устройств Android многие могут отправлять приложения для календарей. Из тех, кто это делает, многие могут отправить Google Calendar, если они лицензировали собственные приложения Google. Тем не менее, это означает, что:

  • Не все устройства будут иметь календарное приложение
  • Не все устройства будут иметь Google Calendar

И, не все пользователи хотят использовать Google Calendar. Они могут захотеть использовать какое-то другое приложение для календаря, либо предварительно установленное на своем устройстве, либо загруженное с канала распространения приложений, например, в Play Маркет.

Это приложение для календарей, предлагающее импорт ICS. Существует не требование, чтобы каждое приложение для календаря предлагало это, и нет необходимости, чтобы они делали это через какое-то действие Intent, которое сторонние приложения могут вызывать.

IMHO, наиболее вероятный сценарий для приложения календаря, предлагающего импорт ICS, будет через ACTION_VIEW с любым типом MIME для .ics (text/calendar?). Такая деятельность может поддерживать или не поддерживать схемы http или https, поскольку они могут ожидать, что файл ICS будет локальным (например, вложение электронной почты) и поддерживает только file и content.

+0

Так что моя следующая попытка может быть извлечена из файла ics на локальном компьютере и передать его местный uri в качестве дополнительных компонентов для намерения action_view ... попробует и обновит результат, но увидит, что кто-нибудь еще придумает другую идею. Заранее спасибо. –

+0

@TrungLe: «передайте свой локальный uri как дополнение к намерению action_view» - нет, это было бы в фасетке «данных» (например, «новый Intent (Intent.ACTION_VIEW, uriToYourICS))). – CommonsWare

+0

на некоторых телефонах (например, телефон wiko).Расширение ics не поддерживается, поэтому нет выхода, кроме тоста, но некоторые могут открывать и работать нормально, я думаю, что я либо проанализирую файл ics, либо начну вставить/изменить намерение в календарь https://github.com/ rabidaudio/android-ical-parser Или может быть просто запросить дополнительную информацию у api lol –