Androidアプリ内から新しいカレンダーを作成する方法をすべて確認しました。私が見た唯一の方法は、最新のAPIバージョンで新しいCalendar APIを使用することですが、これはCalendarContract.ACCOUNT_TYPE_LOCAL
を使用する場合にのみ有効です。 Google Calendar
と同期して、ユーザーのGoogleアカウントに添付されたカレンダーを作成することはできません。オンラインカレンダーリストGoogle Calendarには表示されません。Android新しいカレンダーを追加する
values.put(CalendarContract.Calendars.ACCOUNT_TYPE,
CalendarContract.ACCOUNT_TYPE_LOCAL);
アカウントのアカウントタイプを使用しようとしましたが、これは機能しません。しかし、それはどんなエラーも生成していないようです。結果は元気です。ここで
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
はCalendar API
とSYNCADAPTER
(コメントアウトアカウントの種類)を使用して新しいローカルカレンダーを追加するための完全なコードです。私がやろうとしていることが可能なのか誰にも分かりますか?
AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");
String accountName = "";
String accountType = "";
for (Account account : accounts) {
accountName = account.name;
accountType = account.type;
break;
}
ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Calendars.ACCOUNT_NAME, accountName);
//values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
values.put(CalendarContract.Calendars.NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
values.put(CalendarContract.Calendars.VISIBLE, 1);
values.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
values.put(CalendarContract.Calendars.OWNER_ACCOUNT, accountName);
values.put(CalendarContract.Calendars.DIRTY, 1);
values.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().getID());
Uri calUri = CalendarContract.Calendars.CONTENT_URI;
calUri = calUri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, accountName)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, accountType)
.build();
Uri result = cr.insert(calUri, values);
問題が解決したら、あなた自身の質問に答えてください。あなたはバッジを手に入れ、多くの人が自由/簡単な助けを得るでしょう。 –
あなたの質問にお答えしましたか?私は同じものを探しています。良い質問です。 –