2011-02-11 100 views
4

我正在編寫一個應用程序,該應用程序需要在後臺將事件寫入日曆,一旦應用程序安裝完成後,用戶無需輸入。這意味着使用Intents創建事件的方法不是我所追求的。在Android應用程序中添加日曆事件

我發現一個網站上的代碼,但它不工作:現在

long start = 1297512000; // 2011-02-12 12h00 
    long end = 1297515600; // 2011-02-12 13h00 

    String title = "TEST ENTRY - DELETE ME!!"; 

    ContentValues cvEvent = new ContentValues(); 
    cvEvent.put("calendar_id", 1); 
    cvEvent.put("title", title); 
    cvEvent.put("dtstart", start); 
    //cvEvent.put("hasAlarm", 1); 
    cvEvent.put("dtend", end); 

    getContentResolver().insert(Uri.parse("content://com.android.calendar/events"), cvEvent); 

,之前與任何人在趟過了「谷歌強烈建議您不要使用此方法」或類似,我已經知道這一點。

這個有用嗎?我在我的設備上運行薑餅,這可能會導致問題!

我發現的唯一選擇是使用GData API,但後來我需要驗證這是爲什麼上述更好....這裏有應用程序不需要身份驗證,所以他們必須使用這個太! :)

如果有人可以幫忙,請做!

感謝 尼爾

+0

奇怪的是,使用在線時代轉換器上述日期正常工作。我剛剛發現這些實際上是錯誤的,並且是在1970年的一個日期。爲了糾正它們,我需要添加3x 0到最後,所以它們變成:1297512000000和1297515600000.我的代碼正在工作,但日期是錯誤的,所以我從未見過事件被添加! DOH! – neildeadman 2011-02-12 16:51:30

+0

使用相同的網站批量轉換器顯示正確的日期,雖然...我已經聯繫該網站的作者。 – neildeadman 2011-02-12 16:53:23

回答

1

轉換日期存在問題。我在1970年代結束了一次約會,但預計在2011年2月舉行。

使用不同的時代轉換器顯示我有3個丟失的0。

0

我有一個應用程序,這樣做但兩者的HTC Sense UI和摩托羅拉的Motoblur打破了許多手機上這個功能,沒有修復,我可能永遠找不到。 Google無法扣除這些API並使它們在所有設備上正常可用,這真是令人遺憾。這似乎就像移動設備SDK中的基本功能。我知道它在黑莓SDK中。

我希望能夠做到這一點,所以如果你找到方法,請在這裏發佈,以便我可以看到它。不過,我會提醒您不要在此花費大量時間,因爲我不認爲只有Android設備的一小部分可以使用此功能。