2

我正在使用通知 API 开发一个 RSS 智能扩展应用程序。我想知道如何获取我的智能扩展的活动/非活动状态(在 SmartWatch 应用程序中单击我的 RSS 智能扩展时的第一个复选框)。

NotificationAPI 示例使用额外的复选框首选项来启动或不下载数据生成通知的服务,但我不想强迫用户进入子菜单并激活数据下载。如果用户激活了我的 RSS 智能扩展,他已经希望扩展在 RSS 中有一些新项目时通知他。

有一个回调可以知道我的智能扩展何时正确添加到 liveware/smartwatch 应用程序 (onRegisterResult),但我没有找到回调来知道智能扩展是否实际处于活动状态。

提前致谢!

4

1 回答 1

5

智能扩展 SDK 的 SampleNotificationExtension 提供了一些示例:

  • 如何通过内容提供程序向/从驻留在 Liveware Manager 应用程序(智能扩展 API 的中心)中的通知数据库添加/更新/删除/读取数据

  • 如何响应用户在 SmartWatch 上打开通知并按下操作按钮的事件

在示例扩展中,有一个服务每 10 秒提供一次通知数据库,然后显示在 SmartWatch 设备上。首选项活动中的开/关设置仅用于启动和停止为数据库提供数据的循环。

行。

所以我猜你想订阅 RSS 提要,当新帖子到达时,你希望它们被传播到 SmartWatch。您可能需要启动一项服务,如示例中所示,并且只要手表连接到手机,您就应该运行该服务。您可以在此处指定:

@Override
protected boolean keepRunningWhenConnected() {
    return true;
}

如果您使用 SmartExtension 实用程序类,您的扩展将自动注册并启动您的服务。在示例扩展中,在扩展注册后,会检查用户是否通过首选项激活了扩展。

@Override
public void onRegisterResult(boolean result) {
    /.../
    boolean isActive = prefs.getBoolean(
            getString(R.string.preference_key_is_active), false);
    if (isActive) {
        startAddData();
    }
}

如果你愿意,你可以保留它,但这不是必需的。如前所述,它仅用于启动和停止数据馈送。无论如何,您可以在注册后开始 RSS 检查。

如果用户激活了我的 RSS 智能扩展,他已经希望扩展在 RSS 中有一些新项目时通知他。

当服务启动时,您可以检查通知数据库中的内容与 RSS 提要提供的内容之间的差异。

嗯,答案很长,希望对您有所帮助!

于 2012-05-11T07:02:30.310 回答