календарь на андроид - PullRequest
       12

календарь на андроид

4 голосов
/ 22 декабря 2009
ComponentName componentName = new ComponentName("com.android.calendar",
        "com.android.calendar.LaunchActivity");
if (componentName != null) {
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
    // com.android.providers.calendar.CalendarProvider
    intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);

    intent.setComponent(componentName);
    startActivity(intent);
} else {
    Log.i("", "98979");
}

LogCat возвращает следующую ошибку:

ОШИБКА / AndroidRuntime (601): вызвано: android.content.ActivityNotFoundException:
Невозможно найти явный класс активности {com.android.calendar/com.android.calendar.LaunchActivity};
Вы объявили об этом в своем файле AndroidManifest.xml?

Что такое новый адрес календаря или пакет?

Ответы [ 3 ]

3 голосов
/ 24 марта 2011

попробуйте это,

это работает для меня, чтобы открыть календарь Google, а не телефон

 Intent i = new Intent();

//Froyo or greater (mind you I just tested this on CM7 and the less than froyo one worked so it    depends on the phone...)
cn = new ComponentName("com.google.android.calendar", "com.android.calendar.LaunchActivity");

 //less than Froyo
 cn = new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity");

i.setComponent(cn);
startActivity(i);

я также ищу, чтобы открыть календарь телефонов

3 голосов
/ 29 октября 2013

попробуйте открыть календарь на мобильном телефоне ...

int sdk = android.os.Build.VERSION.SDK_INT;
int ICE_CREAM_BUILD_ID = android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
if(sdk < ICE_CREAM_BUILD_ID) {
    // all SDK below ice cream sandwich
    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra("beginTime", startTime);
    intent.putExtra("endTime", endTime);
    intent.putExtra("title", title);
    intent.putExtra("description", description);
    intent.putExtra("eventLocation", location);
    intent.putExtra("allDay", isAllDay);
    startActivity(intent);
} else {
    // ice cream sandwich and above
    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime);
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime);
    intent.putExtra(Events.TITLE, title);
    intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
    intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY , isAllDay);
    intent.putExtra(Events.DESCRIPTION, description);
    intent.putExtra(Events.EVENT_LOCATION, location);

    startActivity(intent);
}
1 голос
/ 19 октября 2010

Это работает только для обычных телефонов Android. На телефонах, где производитель внедрил собственный календарь, название класса календаря классов будет другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...