Estou começando a me atualizar no Android e, hoje, em uma reunião de projeto, alguém disse que o Android não possui aplicativo de calendário nativo para que os usuários usem o aplicativo de calendário que quiserem.
Isso é verdade e, em caso afirmativo, como adiciono programaticamente um evento ao calendário do usuário? Existe uma API comum que todos compartilhem?
Pelo que vale, provavelmente estamos segmentando o Android 2.x.
Respostas:
Qual calendário?
Não, não há mais do que uma "API comum que todos compartilhem" para aplicativos de calendário do Windows. Existem alguns formatos de dados comuns (por exemplo, iCalendar) e protocolos da Internet (por exemplo, CalDAV), mas nenhuma API comum. Alguns aplicativos de calendário nem oferecem uma API.
Se houver aplicativos de calendário específicos com os quais você deseja integrar, entre em contato com os desenvolvedores e determine se eles oferecem uma API. Por exemplo, o aplicativo Calendário do projeto de código aberto Android, que Mayra cita, não oferece APIs documentadas e suportadas. O Google até disse explicitamente aos desenvolvedores para não usarem as técnicas descritas no tutorial que Mayra cita.
Outra opção é adicionar eventos ao calendário da Internet em questão. Por exemplo, a melhor maneira de adicionar eventos ao aplicativo Calendário a partir do projeto de código aberto Android é adicionar o evento ao Google Calendar do usuário por meio das APIs GData apropriadas.
ATUALIZAR
Android 4.0 (API Nível 14) adicionou a
CalendarContract
ContentProvider
.fonte
Tente isso no seu código:
fonte
Use esta API no seu código. Isso ajudará você a inserir evento, evento com lembrete e evento com reunião pode ser ativado ... Esta API funciona para a plataforma 2.1 e superior Aqueles que usam menos de 2.1 em vez do conteúdo: // com .android.calendar / events usa o conteúdo: // calendar / events
fonte
event.put("eventTimezone", "UTC/GMT +2:00")
e eliminadaevent.put("visibility", 3)
eevent.put("transparency", 0)
e funciona bemandroid.database.sqlite.SQLiteException
na linha #Uri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);
eu usei o código abaixo, resolve meu problema para adicionar evento no calendário padrão do dispositivo no ICS e também na versão menos que o ICS
Espero que ajude .....
fonte
A partir da versão 4.0 do Android, APIs e intenções oficiais estão disponíveis para interagir com os provedores de calendário disponíveis .
fonte
Caso alguém precise disso para o Xamarin em c #:
Funções auxiliares:
fonte
O calendário do Google é o aplicativo de calendário "nativo". Até onde eu sei, todos os telefones vêm com uma versão instalada e o SDK padrão fornece uma versão.
Você pode conferir este tutorial para trabalhar com ele.
fonte
Tente isso,
fonte
se você tiver uma determinada sequência de datas com data e hora.
por exemplo
String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */
use o código a seguir para adicionar um evento com data e hora ao calendário
fonte
você precisa adicionar sinalizador:
ou você causará erro com:
startActivity()
de fora de um contexto de atividade requer oFLAG_ACTIVITY_NEW_TASK
fonte