gpt4 book ai didi

java - 在android中将事件添加到用户创建的日历后,事件标题不显示

转载 作者:行者123 更新时间:2023-11-29 09:24:06 26 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它会在第一次安装该应用程序时在手机上创建一个日历。当我以编程方式或使用设备本身创建事件时,该事件将显示在日历中,但缺少其标题。我正在 HTC nexus one 上测试我的代码。

由于我在通过我的代码或通过设备创建事件时遇到了相同的行为,我怀疑我编写的用于创建新日历帐户的代码存在问题。为此,我在 calendar.db 数据库的 calendars 表中添加了一个新字段,其 URI 为:“content://com.android.calendar/calendars "

 private Uri addNewCalendar() {

if (!calendarExists()) {

ContentResolver contentResolver = mContext.getContentResolver();

ContentValues cv = new ContentValues();
cv.put(Calendar.Calendars._SYNC_ACCOUNT, mAccount.name);
cv.put(Calendar.Calendars._SYNC_ACCOUNT_TYPE, mAccount.type);
cv.put(Calendar.Calendars._SYNC_TIME, new Date().getTime());
cv.put(Calendar.Calendars.URL, "http://www.example.com");
cv.put(Calendar.Calendars.NAME, mAccount.name);
cv.put(Calendar.Calendars.DISPLAY_NAME, mAccount.name);
cv.put(Calendar.Calendars.HIDDEN, 0);
cv.put(Calendar.Calendars.COLOR, 14417920);
cv.put(Calendar.Calendars.ACCESS_LEVEL, 700);
cv.put(Calendar.Calendars.SELECTED, 1);
cv.put(Calendar.Calendars.SYNC_EVENTS, 1);
cv.put(Calendar.Calendars.TIMEZONE, "GMT");
cv.put(Calendar.Calendars.OWNER_ACCOUNT, mAccount.name);

Uri uri = contentResolver.insert(Calendar.Calendars.CONTENT_URI.buildUpon().build(), cv);

return uri;
}
return null;
}

另外,在查看事件的title字段是否真的写入数据库时​​,发现保存正确。当我尝试在手机上编辑 Activity 时,我可以看到 Activity 标题。

有人知道我为什么会遇到这个问题吗?如果您需要更多信息,请告诉我。

最佳答案

请尝试此代码希望能回答您的问题:

  public int addEvent(String title, String location, String detail,
long from, long to, int reminder, boolean update, int id) {
ContentValues event = new ContentValues();
Uri url = null;
event.put("calendar_id", "1");
// event.put("_id", id);
event.put("title", title);
event.put("description", detail);
event.put("eventLocation", location);

// startTime = System.currentTimeMillis();
/*
* try { Thread.sleep(5000); } catch (InterruptedException e) {
* e.printStackTrace(); }
*/
// endTime = System.currentTimeMillis();
event.put("dtstart", startTime);
event.put("dtend", endTime);
event.put("allDay", 0); // 0 for false, 1 for true
event.put("eventStatus", 1);
event.put("visibility", 0);
event.put("transparency", 0);
event.put("hasAlarm", reminder); // 0 for false, 1 for true

String contentProvider;
if (Build.VERSION.RELEASE.contains("2.2")
|| Build.VERSION.RELEASE.contains("2.3"))
contentProvider = "com.android.calendar";
else
contentProvider = "calendar";

Uri remindersUri = Uri.parse(String.format("content://%s/reminders",
contentProvider));
Uri eventsUri = Uri.parse(String.format("content://%s/events",
contentProvider));
Uri calendars = Uri.parse(String.format("content://%s/calendars",
contentProvider));
if (update)
getContentResolver().update(eventsUri, event, "event_id=?",
new String[] {})/* ate(eventsUri, event) */;
// retCode = db.update(SQLiteDBHandler.EVENT_TABLE, values, "_id=?", new
// String[]{id+""});
else
url = getContentResolver().insert(eventsUri, event);
String eventid = url.getPathSegments().get(
url.getPathSegments().size() - 1);
if (reminder == 1) {
event = new ContentValues();
event.put("event_id", eventid);
event.put("minutes", reminder_time);
event.put("method", 1);
getContentResolver().insert(remindersUri, event);
/*
* try{ Cursor curs = getContentResolver().query(remindersUri, null,
* null, null, null); curs.getColumnName(3); }catch (Exception e) {
* // TODO: handle exception e.printStackTrace(); }
*/
}
return Integer.parseInt(eventid);
}

关于java - 在android中将事件添加到用户创建的日历后,事件标题不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com