从android日历获取事件时遇到问题,某些时间光标获取事件或某些时间光标未获取事件

从android日历获取事件时遇到问题,某些时间光标获取事件或某些时间光标未获取事件,android,google-calendar-api,android-calendar,android-cursor,android-contentresolver,Android,Google Calendar Api,Android Calendar,Android Cursor,Android Contentresolver,我想从arrayList的android日历特定日期中获取事件。但获取事件的某个时间光标显示0结果,某个时间其显示完美结果。帮助显示以下代码并帮助我 用于获取特定日期事件的arrayList循环 for (int i = 0; i < mListCalendarData.size(); i++) { readCalendarEvent(mHomeActivity, mSharedPreferencesCustom.getString(SharedPreferences

我想从arrayList的android日历特定日期中获取事件。但获取事件的某个时间光标显示0结果,某个时间其显示完美结果。帮助显示以下代码并帮助我

用于获取特定日期事件的arrayList循环

for (int i = 0; i < mListCalendarData.size(); i++) {
           readCalendarEvent(mHomeActivity, mSharedPreferencesCustom.getString(SharedPreferencesConstant.PREF_ACCOUNT_NAME, ""),
                        getYearOnly(mListCalendarData.get(i).getDate()),
                        getMonthOnly(mListCalendarData.get(i).getDate()),
                        getDateOnly(mListCalendarData.get(i).getDate()),
                        getHoursOnly(mListCalendarData.get(i).getTime()),
                        getMinteOnly(mListCalendarData.get(i).getTime()),
                        getAOnly(mListCalendarData.get(i).getTime()),
                        mListCalendarData.get(i).getTitle());
            }
for(int i=0;i
这是用于读取日历事件的函数

public boolean readCalendarEvent(final Context context, final String AccountName, final int year, final int month, final int date, final int hours, final int mint, final int A, final String APITitle) {
        isEventAdded = false;
                try {
                    ContentResolver contentResolver = context.getContentResolver();
                    String[] projection = new String[]{CalendarContract.Events.CALENDAR_ID, CalendarContract.Events.TITLE, CalendarContract.Events.DESCRIPTION, CalendarContract.Events.DTSTART, CalendarContract.Events.DTEND, CalendarContract.Events.OWNER_ACCOUNT, CalendarContract.Events._ID, CalendarContract.Events.ALL_DAY, CalendarContract.Events.EVENT_LOCATION};

                    Calendar c_start = Calendar.getInstance();
                    c_start.set(year, month, date, 01, 00, 00); //Note that months start from 0 (January)

                    Calendar endTime = Calendar.getInstance();
                    endTime.set(year, month, date, 23, 59, 59);

                    String selection = "(( " +CalendarContract.Events.CALENDAR_ID +" == "+calId+" ) AND (" + CalendarContract.Events.DTSTART + " >= " + c_start.getTimeInMillis() + " ) AND ( " + CalendarContract.Events.DTEND + " <= " + endTime.getTimeInMillis() + " ) AND ( deleted != 1 ))";
                    final Cursor cursor = contentResolver.query(Uri.parse("content://com.android.calendar/events"), projection, selection, null, "dtstart ASC");

                            System.out.println("Cursor size====================>" + cursor.getCount());
                            if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
                                do {

                                    Log.i("CalanderStaff", "CALENDAR_ID: " + cursor.getString(0));
                                    Log.i("CalanderStaff", "title: " + cursor.getString(1));
                                    Log.i("CalanderStaff", "CalendarTime: " +cursor.getString(3));
                                    Log.i("CalanderStaff", "Account : " + cursor.getString(5));
                                    Log.i("CalanderStaff", "ID : " + cursor.getString(6));
                                    Log.i("CalanderStaff", "Our account : " + AccountName);
                                } while (cursor.moveToNext());

                            } else {

                                Log.i("CalanderStaff", "No event for this date ..  cursor 0");
                            }
                            cursor.close();

                } catch (Exception e) {
                    e.printStackTrace();
                }
        return true;
    }
public boolean readCalendarEvent(最终上下文上下文、最终字符串AccountName、最终整数年、最终整数月、最终整数日期、最终整数小时、最终整数分钟、最终整数A、最终字符串标题){
isEventAdded=假;
试一试{
ContentResolver ContentResolver=context.getContentResolver();
String[]projection=新字符串[]{CalendarContract.Events.CALENDAR\u ID,CalendarContract.Events.TITLE,CalendarContract.Events.DTSTART,CalendarContract.Events.DTEND,CalendarContract.Events.OWNER\u帐户,CalendarContract.Events.\u ID,CalendarContract.Events.ALL\u DAY,CalendarContract.Events.Events\u位置};
Calendar c_start=Calendar.getInstance();
c_start.set(年、月、日、01、00、00);//注意,月份从0(一月)开始
Calendar endTime=Calendar.getInstance();
设置(年、月、日、23、59、59);
字符串选择=“(“+CalendarContract.Events.CALENDAR_ID+”=“+calId+”)和(“+CalendarContract.Events.DTSTART+”>=“+c_start.getTimeInMillis()+”)和(“+CalendarContract.Events.DTEND+”+cursor.getCount());
if(cursor!=null&&cursor.getCount()>0&&cursor.moveToFirst()){
做{
Log.i(“CalanderStaff”,“日历ID:+cursor.getString(0));
Log.i(“CalanderStaff”,“title:+cursor.getString(1));
Log.i(“CalanderStaff”,“CalendarTime:+cursor.getString(3));
Log.i(“CalanderStaff”,“Account:+cursor.getString(5));
Log.i(“CalanderStaff”,“ID:”+cursor.getString(6));
Log.i(“CalanderStaff”,“我们的账户:”+账户名称);
}while(cursor.moveToNext());
}否则{
Log.i(“CalanderStaff”,“此日期无事件..光标0”);
}
cursor.close();
}捕获(例外e){
e、 printStackTrace();
}
返回true;
}

请帮助我解决此问题。谢谢。

尝试使用using Calendar Provider提供的代码。您可能还希望检查此相关的,以便了解有关从android Calendar获取日历事件的更具体示例。希望这有帮助。@Mr.Rebot感谢ans。我尝试了所有与特定日期打成平相关的所有ex。bu大多数情况下,我都使用using Calendar Provider提供的代码发布了此问题。您可能还想查看此相关问题,以便了解有关从android Calendar获取日历事件的更具体示例。希望这有帮助。@Mr.Rebot感谢ans。我尝试了所有与特定日期获得平衡相关的最新版本。但大多数情况下,我都有此版本控告