2012-11-28 12 views
11

Potrzebuję wspierać Androida 2.1 i nowsze. Wiem, że CalendarContract nie jest dostępny w systemie Android 2.1, więc zrobiłem następujące obejście.Czy istnieje sposób dodawania przypomnień do nowego wydarzenia w kalendarzu za pomocą intencji?

Intent intent = new Intent(Intent.ACTION_EDIT) 
         .setType("vnd.android.cursor.item/event") 
         .putExtra("beginTime", beginTime.getTimeInMillis()) 
         .putExtra("title", title) 
         .putExtra("description", description) 
         .putExtra("eventLocation", location) 
         .putExtra("allDay", allDay) 
         .putExtra(Intent.EXTRA_EMAIL, email); 
       if(!allDay) { 
        intent.putExtra("endTime", endTime.getTimeInMillis()); 
       } 

       startActivity(intent); 

Działa to bardzo dobrze do tej pory. Testowałem od 2.1 do 4.1.

Chciałbym również dodać przypomnienia, ale nie mogę znaleźć żadnej dokumentacji, jak to zrobić za pomocą Intents. Czy ktoś ma przykład? Chcę uniknąć dodawania kolejnych uprawnień do mojego manifestu do pisania do kalendarza, więc jeśli masz sugestię, która tego wymaga, nie będę mógł z niego korzystać.

+0

Jeśli zaznaczysz zapasowy kod źródłowy Androida, nie można dodać reeminder through intent. Ale niektórzy producenci OEM mogli to zaimplementować. Więc nawet jeśli go znajdziesz, to nie zadziała na wszystkich telefonach. – nandeesh

+0

@nandeesh Myślę, że to najlepiej służy jako odpowiedź, ponieważ wydaje się, że to prawda i tak jest. Chciałbym oznaczyć to jako odpowiedź, jeśli ktokolwiek jeszcze potwierdzi. – user5243421

Odpowiedz

1

Jeśli zaznaczysz zapasowe źródło kalendarza na Androida code, przypomnienia nie będą dodawane przy użyciu intencji.

Zamiast tego calendar ma ustawienie, aby ustawić domyślne przypomnienie. Ale niektórzy producenci OEM mogli to zaimplementować. Więc nawet jeśli to znajdziesz, nie zadziała na wszystkich telefonach.

Powiązane problemy