【问题标题】:Getting data from calendar on Android Wear从 Android Wear 上的日历获取数据
【发布时间】:2015-07-16 23:23:36
【问题描述】:

我正在像这样查询日历数据:

// 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 上做同样的事情?

【问题讨论】:

    标签: java android wear-os android-calendar


    【解决方案1】:

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

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

    【讨论】:

    • 所以我假设WearableCalendarContract 一直自动同步?
    • 是的,每当日历发生变化时,我们都会同步数据。与会者例外,他们将被限制为每小时一次。
    • 嗨!您能否指点我一个展示如何使用 Wea​​rableCalendarContract 的示例应用程序?当我尝试在 wearOS 模拟器上使用上述合约时,合约一直返回 0 值。
    • 对不起,我已经很多年没有在 Android Wear 上工作了 :( 你需要查看官方文档。
    【解决方案2】:

    我认为您必须手动将数据同步到 Wear 应用程序,也就是从手机上的 ContentProvider 获取数据,然后通过 DataItem API 将其发送到 wearable。阅读有关在手机之间同步数据的更多信息wear HERE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多