为什么android studio需要CalendarContract.Calendars而不是Calendar?

Mis*_*cha 1 android calendar

我正在尝试使用我的应用程序读取和写入日历.所以我正在使用android开发者指南中的代码:

我复制了这个:

// Run query
Cursor cur = null;
ContentResolver cr = getContentResolver();
Uri uri = Calendars.CONTENT_URI;   
String selection = "((" + Calendars.ACCOUNT_NAME + " = ?) AND (" 
                    + Calendars.ACCOUNT_TYPE + " = ?) AND ("
                    + Calendars.OWNER_ACCOUNT + " = ?))";
String[] selectionArgs = new String[] {"sampleuser@gmail.com", "com.google",
    "sampleuser@gmail.com"}; 
// Submit the query and get a Cursor object back. 
cur = cr.query(uri, EVENT_PROJECTION, selection, selectionArgs, null);
Run Code Online (Sandbox Code Playgroud)

但是我得到的错误无法解析符号日历.android studio提供的解决方案是Calendars改为CalendarContract.Calendars.

我只是好奇有什么区别?可能为什么开发人员指南包含一个缺陷?

Rob*_*enz 5

唯一的区别是import声明.

import android.provider.CalendarContract.Calendars;
// Use Calendars
Calendars.ACCOUNT_NAME


import android.provider.CalendarContract;
// Use CalendarContract.Calendars 
CalendarContract.Calendars.ACCOUNT_NAME
Run Code Online (Sandbox Code Playgroud)