Android 2.3.5 を使用して、次のコードで新しいカレンダーを作成しました。
if(Build.VERSION.SDK_INT < 14)
{
ContentValues calendar = new ContentValues();
calendar.put("_sync_account", "Com2Cal");
calendar.put("_sync_account_type", "LOCAL");
calendar.put("name", "Com2Cal");
calendar.put("displayName", "Com2Cal");
calendar.put("color", 0xFF008080);
calendar.put("access_level", 700);
calendar.put("sync_events", 1);
calendar.put("timezone", TimeZone.getDefault().getID());
calendar.put("ownerAccount", "Com2Cal");
calendar.put("hidden", 0);
Uri conentUri;
if(Build.VERSION.SDK_INT >= 8)
{
conentUri = Uri.parse("content://com.android.calendar/calendars");
}
else
{
conentUri = Uri.parse("content://calendar/calendars");
}
Uri newRow = context.getContentResolver().insert(createCompleteUri(conentUri), calendar);
Log.v(TAG, newRow.toString());
}
と
private static Uri createCompleteUri(Uri uri)
{
Uri.Builder b = uri.buildUpon();
b.appendQueryParameter("caller_is_syncadapter", "true");
b.appendQueryParameter("account_name", "Com2Cal");
b.appendQueryParameter("account_type", "LOCAL");
Uri calUri = b.build();
Log.d("completeUri", calUri.toString());
return calUri;
}
カレンダーアプリで確認できるように、カレンダーが正常に作成されました。しかし、デバイスを再起動すると、カレンダーは存在しなくなります。私は何が欠けていますか?