2

AndroidシステムのカレンダーUIを起動して、新しいイベントを挿入したいと思います。

4.0(IceCream)で次のコードを使用すると、動作します。

Intent calIntent = new Intent(Intent.ACTION_INSERT);
calIntent.setType("vnd.android.cursor.item/event");
calIntent.putExtra("title", summary);
calIntent.putExtra("description", description);
calIntent.putExtra("beginTime", startts);
calIntent.putExtra("endTime", stopts);
startActivity(calIntent);

しかし、GingerBread(2.3)またはFroyo(2.2)では失敗し、NoActivityFound例外が発生しました。インテントを処理するアクティビティが見つかりませんでした。

4.0未満のAndroidシステムカレンダーを開く方法はありますか?

私の問題についていくつかのスレッドがあります。すべての回答は、システムカレンダーを起動せずにすぐにカレンダーにイベントを挿入します。システムカレンダーを起動して、イベントを挿入するかどうかをユーザーに確認してもらいたいと思います。

4

1 に答える 1

2

CalendarContract コンテンツ プロバイダーは、API レベル 14 で Android SDK に追加されました。ユーザーがデバイス上でカレンダー アプリケーションを構成している場合、サード パーティの開発者は、この一連の API を使用してユーザーのカレンダー データにアクセスし、操作することができます。ユーザーは、カレンダー サポートが構成されていないか、複数のカレンダー インスタンス (仕事と遊び) を持っている可能性があります。

古い Android デバイスのサポート

残念ながら、this Calendaring APIs are not backwards compatible with older versions of the platform (prior to Android 4.0, or API Level 14).これらの機能は最新のサポート パッケージには含まれていないため、今後の改訂で表示される予定はありません。アプリケーションで古いプラットフォーム バージョンのカレンダーを操作する必要がある場合は、ユーザーのカレンダーへの非公式アクセスに関する別の記事を参照してください。そうは言っても、違いは驚くほど最小限です。事実上、CalendarContract は、これまで文書化されていなかった API を文書化しました。一部の値が変更されましたが、古いバージョンと新しいバージョンで動作する互換性インターフェイスを作成する必要がある場合は可能かもしれません。ただし、文書化されていない方法が機能しない古いハンドセットがあるため、解決策はまだ完全ではありません.

于 2012-12-22T05:37:26.967 に答える