2013-02-21 4 views
3

Я новичок в разработке Android. Я использую следующий код, чтобы добавить календарь событий в приложение для Android.Календарь событий в Android

Calendar cal = Calendar.getInstance();    
Intent intent = new Intent(Intent.ACTION_EDIT); 
intent.setType("vnd.android.cursor.item/event"); 
intent.putExtra("beginTime", cal.getTimeInMillis()); 
intent.putExtra("allDay", true); 
intent.putExtra("rrule", "FREQ=YEARLY"); 
intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000); 
intent.putExtra("title", "A Test Event from android app"); 
startActivity(intent); 

Но получить следующее сообщение об ошибке:

02-21 12:33:38.262: E/AndroidRuntime(404): FATAL EXCEPTION: main 
02-21 12:33:38.262: E/AndroidRuntime(404): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EDIT typ=vnd.android.cursor.item/event (has extras) } 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.app.Activity.startActivityForResult(Activity.java:2817) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.app.Activity.startActivity(Activity.java:2923) 
02-21 12:33:38.262: E/AndroidRuntime(404): at com.infrasoft.elara.HomeActivity$1.onClick(HomeActivity.java:36) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.view.View.performClick(View.java:2408) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.view.View$PerformClick.run(View.java:8816) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.os.Handler.handleCallback(Handler.java:587) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.os.Looper.loop(Looper.java:123) 
02-21 12:33:38.262: E/AndroidRuntime(404): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-21 12:33:38.262: E/AndroidRuntime(404): at java.lang.reflect.Method.invokeNative(Native Method) 
02-21 12:33:38.262: E/AndroidRuntime(404): at java.lang.reflect.Method.invoke(Method.java:521) 
02-21 12:33:38.262: E/AndroidRuntime(404): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-21 12:33:38.262: E/AndroidRuntime(404): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-21 12:33:38.262: E/AndroidRuntime(404): at dalvik.system.NativeStart.main(Native Method) 

AndroidManifest.xml:

<uses-permission android:name="android.permission.WRITE_CALENDAR" /> 
<uses-permission android:name="android.permission.READ_CALENDAR" /> 

<activity 
    android:name=".CalendarActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.INSERT" /> 
     <category android:name="android.intent.category.APP_CALENDAR" /> 
     <data android:mimeType="vnd.android.cursor.item/event" /> 
    </intent-filter> 
</activity> 

Пожалуйста, скажите мне, что это неправильно.

Заранее спасибо.

+0

Проверить этот вопрос раз [каландров События] [1] [1]: HTTP: // StackOverflow. com/questions/6094243/android-create-calendar-event –

+0

Hi Prudhvi Я прошел этот вопрос, но в нем обсуждается другая проблема – Amruta

ответ

2

EDITED

Я считаю, что вы пытаетесь запустить это на эмуляторе. По умолчанию у эмуляторов нет установленного на них приложения календаря. Таким образом, нет ничего, чтобы справиться с этим типом намерений. Он должен работать на устройстве с календарным событием. Попробуйте запустить его на физическом устройстве, на котором установлено приложение для календаря для Android. Это будет работать.

Для эмулятора вы можете сделать следующее:

1) скачать Calendar.apk (родной андроида календарь)

2) установить его WIA ADB (http://developer.android.com/guide/developing/tools/adb.html) с помощью следующей команды:

adb -e install Calendar.apk 

3) Затем попробуйте запустить приложение после установки календаря.

Вы должны иметь следующие разрешения, объявленные в вашем Manifest.xml:

<uses-permission android:name="android.permission.READ_CALENDAR" /> 
<uses-permission android:name="android.permission.WRITE_CALENDAR" /> 
+0

привет Abhishek, я сделал запись для разрешений. Но у него не было входа . Теперь я добавил это, но я столкнулся с аналогичной ошибкой :(. В моем проекте Calendar Activity не является основной деятельностью, поэтому я пропустил тег действия для MAIN – Amruta

+0

. Вы используете это на эмуляторе? –

+0

::: Да, я запускать его на эмуляторе – Amruta

Смежные вопросы