使用Android 4.0.4的SGS 2上的Android.content.ActivityNotFoundException

时间:2012-11-13 13:52:18

标签: android android-intent calendar

我有一个应用程序,可以让用户在他设备的默认日历中插入一个事件

我开始使用以下代码将活动插入默认日历:

Intent intent = new Intent(Intent.ACTION_INSERT)
                .setData(Events.CONTENT_URI)
                .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
                .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis())
                .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true)
                .putExtra(Events.RRULE, "FREQ=YEARLY;")
                .putExtra(Events.AVAILABILITY, Events.AVAILABILITY_FREE)
                .putExtra(Events.TITLE, title)
                .putExtra(Events.DESCRIPTION, description)
                .putExtra(Events.HAS_ALARM, false);
            context.startActivity(intent);

根据http://developer.android.com/guide/topics/providers/calendar-provider.html#intent-insert的SDK文档,这是在Android 4及更高版本中执行此操作的正确和推荐方法。

这适用于我的旧版三星Galaxy S和Android 4.0.3(旧版三星Galaxy S的TEAMSGS的准系统ICS自定义ROM)。

然而,在将三星Galaxy S2的朋友更新为Samsung Stock Android 4.0.4之后,此代码将导致ActivityNotFound异常:

  

android.content.ActivityNotFoundException:找不到要处理的Activity   Intent {act = android.intent.action.INSERT dat = content:xxxxx(has   额外的)}   android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1535)   在   android.app.Instrumentation.execStartActivity(Instrumentation.java:1387)   在android.app.Activity.startActivityForResult(Activity.java:3195)at   android.app.Activity.startActivity(Activity.java:3302)at   com.radlmaier.heiligenkalender.rk.OptionsMenuHandler.onOptionsItemSelected(OptionsMenuHandler.java:119)   在   com.radlmaier.heiligenkalender.rk.Main.onOptionsItemSelected(Main.java:994)   在android.app.Activity.onMenuItemSelected(Activity.java:2507)at   com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:979)   在   com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)   在   com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)   在   com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)   在   com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:178)   在android.widget.AdapterView.performItemClick(AdapterView.java:292)   在android.widget.AbsListView.performItemClick(AbsListView.java:1181)   在android.widget.AbsListView $ PerformClick.run(AbsListView.java:2709)   在android.widget.AbsListView $ 1.run(AbsListView.java:3464)at   android.os.Handler.handleCallback(Handler.java:605)at   android.os.Handler.dispatchMessage(Handler.java:92)at   android.os.Looper.loop(Looper.java:137)at   android.app.ActivityThread.main(ActivityThread.java:4511)at   java.lang.reflect.Method.invokeNative(Native Method)at   java.lang.reflect.Method.invoke(Method.java:511)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:980)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)at   dalvik.system.NativeStart.main(原生方法)

虽然我使用的是SDK文档推荐的确切方法,但是为什么会失败的任何想法?

这真让我烦心,因为我不知道是否有其他Android 4设备似乎不符合SDK文档...

0 个答案:

没有答案