从Android Wear上的日历获取数据

时间:2015-07-16 12:51:02

标签: java android wear-os android-calendar

我正在查询日历数据,如下所示:

// Constructor of the class
mCursor = context.getContentResolver().query(CalendarContract.Events.CONTENT_URI, mColumns, null, null, null);
updateEvents();

//contents of updateEvents:
events.clear();
mCursor.moveToFirst();
mLastUpdate = System.currentTimeMillis();
while (!mCursor.isAfterLast())
{
    long end = mCursor.getLong(2);
    if (end > mLastUpdate)
        events.add(new Event(mCursor));

    mCursor.moveToNext();
}

代码管理在移动设备上运行,但是当它在Wear设备上运行时,似乎没有数据。

我找到了WaerableCalendarContract,但它似乎不包含我用来填充mColumns类以选择所需数据的Events类。

我怎样才能在Wear上做同样的事情?

2 个答案:

答案 0 :(得分:1)

WearableCalendarContract描述了日历数据的24小时长窗口(从当前时间开始)。你没有在那里看到Event,因为我们传输了Instances个对象。正如您在Instances的基本界面中所看到的,它也包含Events列,因此您应该能够从那里获取所需的数据。

如果您需要超过24小时的数据,则需要自行同步。在手机上查询日历,然后针对您感兴趣的每个事件,构建DataItem。这有点棘手,所以我建议改用WearableCalendarContract。

答案 1 :(得分:0)

我认为您必须手动将数据同步到Wear应用,a.k.a从手机上的ContentProvider获取数据,然后通过wearable将其发送到DataItem API。详细了解如何在手机之间同步数据< - >穿HERE