0

カレンダーに新しいイベントを追加しようとしています (最小 SDK バージョンは 2.2 です)。
それは私がこれまで持っているコードです:

ContentValues event = new ContentValues();

event.put("calendar_id", 2);
event.put("title", "mytitle");
event.put("description", "desc");
event.put("eventLocation", "loc");
event.put("eventTimezone", Calendar.getInstance().getTimeZone().getDisplayName());

long startTime = System.currentTimeMillis() + 1000 * 60 * 60;
Long duration = 1000L * 60 * 30;

event.put("dtstart", startTime);
event.put("duration", duration);

Uri eventsUri = Uri.parse("content://com.android.calendar/events");
Uri insertedUri = getContentResolver().insert(eventsUri, event);

しかし、insertedUriは常に null です。
また、logcat で次の行を確認できます。

Failed to find provider info for calendar  

誰でもそれで私を助けることができますか?
ありがとう。

4

3 に答える 3

0

Androidにはデフォルトのカレンダーはありません。そのため、常にプロバイダーを見つけることができません。そのため、以前はパブリックAPIがありませんでした。あなたは元、グーグルカレンダーのためのカレンダーアプリケーションをインストールする必要があります。他のサードパーティアプリについては、APIを確認してください。

于 2012-04-15T11:08:59.580 に答える
0

これを試すこともできます。

public static void addToCalendar(Context ctx, final String title,
            final long dtstart, final long dtend, final String location) {

        Intent intent = new Intent(Intent.ACTION_EDIT);
        intent.setType("vnd.android.cursor.item/event");
        intent.putExtra("beginTime", dtstart);
        intent.putExtra("allDay", false);
        intent.putExtra("rrule", "FREQ=YEARLY");
        intent.putExtra("endTime", dtend);
        intent.putExtra("title", title);
        intent.putExtra("eventLocation", location);
        ctx.startActivity(intent);
    }
于 2012-04-16T09:28:50.420 に答える
0

ここで答えを見つけました。
ありがとう

于 2012-04-16T09:16:03.200 に答える