2011-04-20 4 views
1

나는 이벤트를 만들고 이메일을 추가하려고합니다.참석자와 이벤트 만들기 android에서 이메일 작성

나는 그것을 얻지 못할 것이다. 내가 얻는 시간은 1970이고 이메일은 없다.

어떤 아이디어가 있습니까?

감사합니다.

Uri calendars = null; 
    if (Integer.parseInt(Build.VERSION.SDK) == 8) 
    { 
     calendars = Uri.parse("content://com.android.calendar/calendars"); 
    } 
    else 
    { 
      calendars = Uri.parse("content://calendar/calendars"); 
    } 

    Cursor cursor = context.getContentResolver().query(calendars,                 new String[] { "_id", "displayName" },             "selected=1",             null,             null); 

    if (cursor != null && cursor.moveToFirst()) 
    { 
     String[] calNames = new String[cursor.getCount()]; 
    final int[] calIds = new int[cursor.getCount()]; 
    for (int i = 0; i < calNames.length; i++) 
    { 
    // retrieve the calendar names and ids    
    calIds[i] = cursor.getInt(0); 
    calNames[i] = cursor.getString(1); 
    cursor.moveToNext(); 
    } 
cursor.close(); 
    String name = "Name1"; 
    String eMail = "[email protected]"; 
    ContentValues event = new ContentValues(); 

    int cal_id = calIds[which]; 
    event.put("calendar_id", cal_id); 
    event.put("title", "test title"); 
    event.put("eventLocation", "test location");    
    event.put("eventStatus", 1); 
    event.put("visibility", 0); 
    event.put("transparency", 0); 
    event.put("hasAlarm", 1); 
    event.put("hasAttendeeData", "1"); 

    Calendar c = Calendar.getInstance(); 
    c.roll(Calendar.DAY_OF_MONTH, true); 

    Date date = c.getTime(); 
    Date begine = new Date(date.getYear(), 
      date.getMonth(), 
      date.getDate(), 
      14, 0);   long dtstart = begine.getTime(); 
    event.put("dtstart", dtstart); 

    Date end = new Date(date.getYear(), 
       date.getMonth(), 
       date.getDate(), 
       15, 0); 
    long dtend = end.getTime(); 

    event.put("dtend", dtend); 
Uri eventsUri = null; 
    if (Integer.parseInt(Build.VERSION.SDK) == 8) 
    { 
     eventsUri = Uri.parse("content://com.android.calendar/events"); 
    } 
    else 
{ 
     eventsUri = Uri.parse("content://calendar/events"); 
    } 
    Uri url = context.getContentResolver().insert(eventsUri, event); 
    long id = -1; 

    if (url != null) 
    { 
     id = Long.parseLong(url.getLastPathSegment()); 
     ContentValues values = new ContentValues(); 
     values.put("event_id", id); 
     values.put("method", 1); //METHOD_ALERT 
     values.put("minutes", 15); // 15 minutes 
     Uri reminder = Uri.parse("content://com.android.calendar/reminders"); 
      context.getContentResolver().insert(reminder, values); 
     if(name.length() > 0 || eMail.length() > 0) 
     { 
      ContentValues attendees = new ContentValues(); 
      attendees.put("attendeeEmail", eMail); 
      attendees.put("attendeeName", name); 
      attendees.put("attendeeRelationship", 2);//RELATIONSHIP_ATTENDEE 
      attendees.put("attendeeStatus", 3); //ATTENDEE_STATUS_INVITED  
      attendees.put("attendeeType", 1); //TYPE_REQUIRED 
      attendees.put("event_id", id); 

      Uri attendeesUri = null; 
      if (Integer.parseInt(Build.VERSION.SDK) == 8) 
      { 
        attendeesUri = Uri.parse("content://com.android.calendar/attendees"); 
      } 
       else 
       { 
        attendeesUri = Uri.parse("content://calendar/attendees"); 
       } 
      context.getContentResolver().insert(attendeesUri, attendees); 

      Intent i = new Intent(Intent.ACTION_EDIT); 

      i.setType("vnd.android.cursor.item/event"); 
      i.setData(url); 

      context.startActivity(i); 
     } 
     else 
     { 
      Toast.makeText(context, "Could not create an event!", Toast.LENGTH_LONG);    
     } 

답변

0

DTSTART 및 DTEND의 시간이 신기원 후 밀리 초 (1970 년 1 월 1 일) 현재 시간을 얻기 위해이 링크 epoch time converter를 사용에 있어야합니다 :

내가 사용하는 코드입니다. 밀리 초가 아닌 초 단위로 반환하므로 사이트에서 사용자에게 제공하는 시간에 1000을 곱하십시오.

또한 dtEnd 및 dtStart는 "긴"유형입니다. 보정이 여기

Long dtStart 
Long dtEnd 
1

는 ....

대신 attendees.put("attendeeRelationship", 2);//RELATIONSHIP_ATTENDEE

당신은 attendees.put("attendeeRelationship", 1);//RELATIONSHIP_ATTENDEE을 넣어해야합니다. 그냥 바꾸면 원하는 이메일 주소와 참석자 이름을 얻을 수 있습니다. organizer

1는 또한 attendees

look here

위한 여기 2

관련 문제