如何知道我的Android SmartWatch扩展程序是否处于非活动状态?

gal*_*lex 2 android sony sony-smartwatch

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

NotificationAPI示例使用额外的Checkbox首选项来启动或不启动下载数据生成通知的服务,但我不想强迫用户进入子菜单并激活数据下载.如果用户激活我的RSS智能扩展,他已经预计扩展程序会通知他是否有一些新项目进入RSS.

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

提前致谢!

Jer*_*ker 5

已提供Smart Extension SDK的SampleNotificationExtension以提供以下示例:

  • 如何通过内容提供商向驻留在Liveware Manager应用程序(Smart Extension API的中心)中的Notification数据库添加/更新/删除/读取数据

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

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

好.

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

@Override
protected boolean keepRunningWhenConnected() {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果用户激活我的RSS智能扩展,他已经预计扩展程序会通知他是否有一些新项目进入RSS.

服务启动时,您可以检查通知数据库中的内容与RSS源的内容之间的增量.

好吧,一个很长的答案,希望它有所帮助!