非常基本的问题,几个小时以来我一直试图自己弄清楚,但无法解决。
所以我正在为 Pebble 创建我的第一个表盘,我希望 watch 每小时发出嗡嗡声(振动)。您还记得一些数字 watch 会在点钟时间发出“哔”声吗?好吧,就像那样。
我认为最简单的方法是:
if (tick_time->tm_min == 0) {
vibes_short_pulse();
}
效果很好。现在我有一个小错误。在那一分钟内,如果重新创建窗口(例如,如果您转到时间线或打开一个 watchapp 并快速返回到我的 watchface),update_time() 将再次调用,因此它会再次发出蜂鸣声。不是一个大错误,但有点烦人。
我尝试使用 bool 标志来解决问题。
static bool vibed = false;
然后,
if (tick_time->tm_min != 0) {
vibed = false;
}
if (tick_time->tm_min == 0 && vibed == false) {
vibes_short_pulse();
vibed = true;
}
但显然,每次重新创建窗口时,无论如何都会将标志恢复为“false”。
不知道怎么解决。如果您对我有提示,将不胜感激。谢谢!
最佳答案
不是检查分钟是否为零,而是检查小时更改事件,例如:
void tick_handler(struct tm *tick_time, TimeUnits units_changed)
{
// Some other code that display/process time
// on hour change do a short buzz
if (units_changed & HOUR_UNIT) {
vibes_short_pulse();
}
}
关于c - 嗡嗡声(振动)在点钟时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060116/