1
我想在android設備上接收日曆更改事件。我嘗試爲它註冊一個觀察者,但它不起作用。如何獲取日曆更改事件?日曆觀察員是否工作?
我是否必須定期檢索所有事件才能知道某些內容已更改?
這裏是我的代碼,非常感謝您的回覆。
public class CalendarObserver extends ContentObserver
{
public CalendarObserver(Handler handler) {
super(handler);
}
public boolean deliverSelfNotifications() {
return true;
}
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.i("", "Calendar changes");
}
}
註冊它在我的主要活動,但它不工作。
CalendarObserver observer = new CalendarObserver (new Handler());
getContentResolver().notifyChange(
Uri.parse("content://com.android.calendar/events"), observer);
也試過......,但仍然沒有工作
String[] projection = new String[] { "_id"};
Uri calendars = Uri.parse("content://com.android.calendar/calendars");
//Uri calendars = Uri.parse("content://com.android.calendar/events");
//Uri calendars = Uri.parse("content://calendar/calendars");
ContentResolver contentResolver = context.getContentResolver();
Cursor cursor = contentResolver.query(calendars, projection, null, null, null);
cursor.registerContentObserver(observer);
還試圖用意圖接收器,因爲我看到了下面的日誌從logcat中, 但它的還是行不通。
I/CalendarProvider2(13444): Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar }
...
CalendarReceiver receiver= new CalendarReceiver();
filter = new IntentFilter();
filter.addAction("android.intent.action.PROVIDER_CHANGED");
registerReceiver(receiver, filter);