Wie kann ich hinzufügen Ereignis im Kalender automatisch?
Wie kann ich add event an den Kalender automatisch? Wenn ich diesen Quellcode, es öffnet Kalender gefüllt mit Einträgen, aber ich muss klicken Sie auf die Schaltfläche speichern zu speichern.
public class CalendarApplicationActivity extends Activity
{
public static final String[] EVENT_PROJECTION = new String[]
{
Calendars._ID, //0
Calendars.ACCOUNT_NAME, //1
Calendars.CALENDAR_DISPLAY_NAME //2
};
private static final int PROJECTION_DISPLAY_NAME_INDEX = 2;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calendar_application);
}
public void onClick(View view)
{
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(Events.TITLE, "Learn Android");
intent.putExtra(Events.EVENT_LOCATION, "Home suit home");
intent.putExtra(Events.DESCRIPTION, "Download Examples");
GregorianCalendar calDate = new GregorianCalendar(2012, 10, 02);
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
calDate.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
calDate.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);
intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
startActivity(intent);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Poste ich Sie in diesem code, der verwendet wird, in einem meiner app auf dem Markt. Es fügt automatisch event zu den user-Kalender. Es nicht mit Absicht, das erfordert eine Benutzeraktion.
Und für ICS und später
CalendarEvent ist wie
public class CalendarEvent { private String title; private String descr; private String location; private long startTime; private long endTime; private String idCalendar; // get and set methods
Welche Art von Fehler haben Sie?Habe ich verwendet Folgenden code zum hinzufügen einer Ereignis in meinem eigenen Kalender erstellt
Wenn Sie mithilfe von Intents zur Kommunikation mit der Kalender-Anbieter, dann, als Sie bemerkt habe, die Kalender-app fragt nach einer Bestätigung durch den Benutzer. Dies ist da mithilfe Absichten heißt, Sie brauchen nicht zu verlangen, alle besonderen Berechtigungen.
Übrigens, Google empfiehlt die Verwendung von Intents, die für die Interaktion mit dem Kalender.
Allerdings, wenn Sie möchten, dass die automatische Einfügung von Ereignissen, Ihre app muss die
WRITE_CALENDAR
permission im manifest. Anstelle der Verwendung von Absichten, verwenden Sie einen ContentResolver. Sehen Sie Beispiel-code bei https://developer.android.com/guide/topics/providers/calendar-provider.html im Abschnitt Ereignisse Hinzufügen.Dieser code fügt ein Ereignis, und zeigt das Ereignis in der Ansicht Kalender. Kein Klick auf "speichern" /user-Interaktion erforderlich.