2012-05-30 43 views
0

我有一个应用程序,在Android 4.x中查询谷歌日历实例和事件API。我已经在各种设备上进行了测试,它的工作原理,但由于某种原因,它不适用于HTC Sense 3.6(Android 4.0.3)。任何人都可以证实这一点,或者是否有人知道发生了什么?HTC Sense 3.6不显示日历事件?

下面的代码片段,在非的HTC Sense设备的工作原理:

Cursor instances = Instances.query(
    context.getContentResolver(), 
    new String[]{Instances.EVENT_ID, Instances.BEGIN, Instances.END, Instances.SELF_ATTENDEE_STATUS}, 
    startTime, 
    startTime+lengthInMillis); 
. 
. 
. 
long eventId = instances.getLong(instances.getColumnIndex(Instances.EVENT_ID)); 
Cursor events = context.getContentResolver().query(
    ContentUris.withAppendedId(Events.CONTENT_URI, eventId), 
    new String[] {Events._ID, Events.CALENDAR_ID, Events.TITLE, Events.DESCRIPTION, Events.EVENT_LOCATION, Events.ALL_DAY, Events.AVAILABILITY}, 
    null, 
    null, 
    null); 

回答

0

显然的HTC Sense 3.6不喜欢Instances.query()API,所以我手动建立的URI具有下列一切工作。

Uri.Builder builder = Instances.CONTENT_URI.buildUpon(); 
    ContentUris.appendId(builder, startTime); 
    ContentUris.appendId(builder, startTime+lengthInMillis); 
    Cursor instances = context.getContentResolver().query(
      builder.build(), 
      null, 
      null, 
      null, 
      null);