【问题标题】:How to know if my Android SmartWatch extension is inactive?如何知道我的 Android SmartWatch 扩展程序是否处于非活动状态?
【发布时间】:2012-05-09 10:16:44
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: android sony sony-smartwatch


    【解决方案1】:

    Smart Extension SDK 的 SampleNotificationExtension 提供了一些示例:

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

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

    在示例扩展中,有一项服务每 10 秒向 Notification 数据库提供一次,然后在 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 提要提供的内容之间的差异。

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

    【讨论】:

    • 我使用 SampleNotificationExtension 作为我的扩展的基础,顺便说一句,这很棒(感谢您提供这么多示例)。如果用户禁用了分机,我想停止服务(删除警报),即使手表仍然连接到手机。我可以使用 SampleNotificationExtension 重现相同的行为。有没有办法知道扩展程序是否处于活动状态?
    • 很遗憾,所有扩展程序的主偏好屏幕中的激活/停用设置都无法被扩展程序读取。它在 SmartWatch 主机应用程序中存储和维护。我的回答中提到的“isActive”首选项是 SampleNotificationExtension 本地的。因此,基本上,您无法知道用户是否已停用您的扩展程序。抱歉,应该从一开始就告诉这个。
    • 这会出现在 SDK 的未来版本中,作为发送到扩展接收器的意图吗?
    • 我们只是说这是我们正在考虑的事情,但我不能说是否或何时。
    • 好的,在那之前,我会像 SampleNotificationExtension 那样提供一个主动偏好。
    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多