我正在使用Notification API开发RSS智能扩展程序。 我想知道如何获得智能扩展的活动/非活动状态(在SmartWatch应用程序中单击我的RSS智能扩展时的第一个复选框)。
NotificationAPI示例使用额外的Checkbox首选项来启动或不启动服务下载数据生成通知,但我不想强迫用户进入子菜单并激活数据下载。如果用户激活我的RSS智能扩展程序,他已经预计扩展程序会在RSS中有新项目时通知他。
有一个回调知道我的智能扩展程序何时正确添加到liveware / smartwatch应用程序(onRegisterResult),但我没有找到回调来知道智能扩展程序是否实际处于活动状态。
提前致谢!
答案 0 :(得分:5)
已提供Smart Extension SDK的SampleNotificationExtension以提供以下示例:
如何通过内容提供商向Liveware Manager应用程序(Smart Extension API的中心)中的Notification数据库添加/更新/删除/读取数据
如何响应用户在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源的内容之间的增量。
很好,答案很长,希望有所帮助!