【问题标题】:Persist GColors on Pebble在 Pebble 上保持 GColors
【发布时间】:2016-10-21 02:35:06
【问题描述】:
我有一个表盘应用程序,用户可以在其中更改屏幕元素的颜色。这些存储在本地存储中,因此在激活表盘时它们需要一些时间来初始化。我想将这三个 GColor 存储在 Pebble 本身上,以便立即应用它们而无需检查手机的本地存储。谁能给我一个如何轻松完成的示例?
根据 Pebble 的 Storage API,值可以存储为布尔、整数、字符串或任意数据结构类型。我很不确定如何在 Pebbles 内存中读取和写入这三个 GColor,因为我使用 Cloudpebble 和 Clay 来处理缓慢但有效的设置。
【问题讨论】:
标签:
persist
pebble-watch
persistent-storage
【解决方案1】:
在 reddit/r/pebbledeveloper 和 u/please_press_start 上获得了一些帮助。
当通过 Appmessage 从 Clay 传递一个值时,在 inbox_received_callback 函数中,我这样做是为了将颜色值写入 main.c 顶部#defined 的 PERSISTCORNER(颜色是从 Clay 映射中的标准颜色选择器中挑选的到 MESSAGE_KEY_COLOUR):
Tuple *colour_t = dict_find(iterator, MESSAGE_KEY_COLOUR);
if(colour_t) {
// colour is a GColor
colour = GColorFromHEX(colour_t->value->int32);
//write to persistent storage
int corner_colour_HEX = colour_t->value->int32;
persist_write_int(PERSISTCORNER, corner_colour_HEX);
}
我在 init() 中应用颜色设置
if (persist_exists(PERSISTCORNER)) {
int persistcorner = persist_read_int(PERSISTCORNER);
backgroundColour = GColorFromHEX(persistbg);
}