ユーザーが自分のデバイスのデフォルトのカレンダーにイベントを挿入できるようにするアプリがあります
次のコードを使用して、イベントをデフォルトのカレンダーに挿入するアクティビティを開始しています。
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ドキュメントによると、これはAndroid4以降でこれを行うための正しい推奨される方法です。
これは、Android4.0.3を搭載した古いSamsungGalaxy S(古いSamsung Galaxy S用のTEAMSGSによるベアボーンICSカスタムROM)でうまく機能します。
ただし、友人のSamsungGalaxyS2をSamsungStockAndroid 4.0.4に更新した後、このコードによりActivityNotFound例外が発生します。
android.content.ActivityNotFoundException:androidのandroid.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1535)でIntent {act = android.intent.action.INSERT dat = content:xxxxx(has extras)}を処理するアクティビティが見つかりません。 app.Instrumentation.execStartActivity(Instrumentation.java:1387)at 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)at com.radlmaier.heiligenkalender.rk.Main.onOptionsItemSelected(Main.java:994)at android.app.Activity.onMenuItemSelected(Activity.java:2507)atcom.android。 comp.android.internal.view.menu.MenuBuilderのinternal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:979)。dispatchMenuItemSelected(MenuBuilder.java:735)at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874) com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:178)at android.widget.AdapterView.performItemClick(AdapterView.java:292)at android.widget.AbsListView.performItemClick(AbsListView.java:1181 )at android.widget.AbsListView $ PerformClick.run(AbsListView.java:2709)at 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 。方法。combNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:511)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:980)atcom.android.internal。 os.ZygoteInit.main(ZygoteInit.java:747)at dalvik.system.NativeStart.main(ネイティブメソッド)
SDKドキュメントで推奨されている正確な方法を使用しているのに、これが失敗する理由はありますか?
SDKドキュメントに準拠していないように見える他のAndroid4デバイスがあるかどうかわからないので、これは本当に私を悩ませています...