3

私は3つのことをしようとしています。設定内の選択に応じて、インストールされているカレンダー アプリを開くか、インストールされているカレンダー内でイベントの詳細を表示するか、目的のインストールされているカレンダー アプリを使用して新しいイベントを作成します。ユーザーは、Android フレームワークの決定ダイアログで使用するアプリを決定できる必要があります。

テスト目的で、標準の Google カレンダー アプリに加えて、aCalendar と Jorte をインストールしました。現時点では、「新しいイベントの作成」のみが、このアクションを実行する 3 つのアプリすべてを一覧表示しています。

Intent intent = null;
intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");

アクションを使用してカレンダーまたはカレンダーの詳細のみを開くと、選択ダイアログ内に aCalendar と Google カレンダーのみが表示されます。どちらも正常に動作しています。

これは、インテントを作成するために使用する完全な方法です。

private Intent createCalendarIntent()
{
    long startMillis = System.currentTimeMillis();
    Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
    builder.appendPath("time");
    ContentUris.appendId(builder, startMillis);
    Intent intent = null;

    Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, 
                                         calHandle.getEventID(0));          

    switch(getPreferenceIntentAction())
    {
        case 1: intent = new Intent(Intent.ACTION_VIEW);
                            intent.setType("vnd.android.cursor.item/event");
                            intent.setData(builder.build());
            break;
        case 2: intent = new Intent(Intent.ACTION_VIEW);
                            intent.setType("vnd.android.cursor.item/event");
                            intent.setData(uri);
            break;
        case 3: intent = new Intent(Intent.ACTION_EDIT);
                            intent.setType("vnd.android.cursor.item/event");
            break;
            default:
                break;
    }

ケース 1 は実際の週にカレンダーを開く場合、ケース 2 はイベントの詳細を表示する場合、ケース 3 は新しいイベントを作成する場合です。

ジョルテが現れない理由が分からない。これは他のカレンダーアプリでも起こると思います。

デバイスにインストールされているすべてのアプリを読み上げたり、カレンダー アプリをフィルター処理したりせずに、op Jorte (および他のアプリも) を表示して、ユーザーが設定内で組み込みのダイアログで決定できるようにするにはどうすればよいでしょうか。

前もって感謝します!

4

1 に答える 1