- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用自定义字体和位图图像创建一个简单的表盘。当我刚刚显示时间时,它工作正常。我只使用了 1 个 TextLayer。
static TextLayer *s_time_layer;
然后我决定在显示中添加日期和星期。所以我又创建了 2 个 TextLayers。
static TextLayer *s_day_layer,*s_date_layer;
创建这两层后,我成功地能够显示星期和日期。但是 watch 停止滴答。它只显示当前时间一次然后卡住。它在我再次启动后显示当前时间。
这是我更新时间的函数。
static void update_time(struct tm *tick_time)
{
time_t temp = time(NULL);
tick_time = localtime(&temp);
static char buffer[6];
static char daybuffer[9];
static char datebuffer[] = "00-00-00";
strftime(buffer, sizeof(buffer), "%I:%M", tick_time); //using 12 hr format
text_layer_set_text(s_time_layer,buffer);
strftime(daybuffer, sizeof(daybuffer), "%A", tick_time);
text_layer_set_text(s_day_layer, daybuffer); //display current day
strftime(datebuffer, sizeof(datebuffer), "%d/%m/%y", tick_time);
text_layer_set_text(s_date_layer, datebuffer); //display current date
}
为什么会这样?我应该如何设置我的时钟?
最佳答案
您定义了 daybuffer[9]
,但最坏的情况是星期三,即 9 个字符长 + null
终止符。
这意味着 text_layer_set_text 将调用 UB什么时候打印你的字符串。
将缓冲区扩大到 10
个字符。
看看strftime手册页
在哪里可以找到
RETURN VALUE
Provided that the result string, including the terminating null byte, does not exceed max bytes, strftime() returns the number of bytes (excluding the terminating null byte) placed in the array s. If the length of the result string (including the terminating null byte) would exceed max bytes, then strftime() returns 0, and the contents of the array are undefined. Note that the return value 0 does not necessarily indicate an error. For example, in many locales %p yields an empty string. An empty format string will likewise yield an empty string.
关于在 Pebble 表盘应用程序上创建多个文本层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015802/
如何从 Pebble 检测摇晃手势? 我只是想在摇动鹅卵石时显示一个文本层... 他们在 SDK 2.0 中添加了一个新的 API: https://developer.getpebble.com/2
我找不到很多关于这个问题的文档。我的 pebble 上所有其他正在运行的应用程序都已连接到我的手机,并且按预期工作。但是,我目前正在处理的 Pebble.js 应用程序只显示 Disconnected
我正在使用此 github 项目中的 Pebble.js 创建我的第一个应用程序 https://github.com/pebble/pebblejs 重点是,我正在尝试让一个应用程序在两个不同的卵石
我正在考虑开始 pebble 开发,但我对 pebble 网站 ( https://developer.getpebble.com ) 感到困惑,他们为 Cloud Pebble 做广告但他们也建议通
我正在使用 Pebble.js 编写一个 Pebble 应用程序,当在整个应用程序中的不同时间按下同一按钮时,它需要运行不同的功能。 我可以轻松地将一个功能与一个按钮相关联: dispWindow.o
我知道如何获取有关固件的元信息,但是使用 Pebble iOS Kit 从我的 Pebble 应用程序的 appinfo.json 获取元信息的正确方法是什么? (即版本标签) 最佳答案 不幸的是,目
我想预先缓存一些位图,然后创建一系列带有小细节的图层。例如 watch 的手。我想这可以通过我手动组合尊重 .a channel 的位图并将其发送到 BitmapLayer 来完成。但我想知道它是否可
我在使 super 基本Pebble tutorial正常工作时遇到麻烦。按照本教程中的步骤操作后,进入pebble build部分,并在收到消息后 'build' finished successf
我正在构建一个互联网连接的BitCoin应用程序。观看来自不同比特币市场的股票行情信息。 一切正常。现在,我想将可用市场列表发送到 watch 以显示为菜单。 要发送的JSON: {"markets"
Pebble 应用程序(在 watch 本身上运行)是否可以仅使用配对手机作为网络网关直接访问互联网(例如从 HTTP REST API 获取数据),而无需编写专门的应用程序或软件支持在手机上运行?
是否可以在 Pebble 表盘中检索“请勿打扰”设置?我想知道我的表盘什么时候应该停止通知用户,但只有在 DND 开启时。我想也有可能获得 24/12 小时模式吗? 最佳答案 看起来像you cann
我正在尝试创建自己的 Pebble 表盘。似乎还没有人做到这一点,也没有 SDK。 到目前为止,我已经发现表盘托管在这里: http://pebble-static.s3.amazonaws.com/
我正在尝试构建一个简单的循环,在其中执行模板 N 次。我编写了一个函数,它接受一个参数并根据它输出字符串,我需要执行它很多次。 如果我明确定义一个范围,则以下内容有效: {% for t in ["0
我为 Android 开发了一个 pebble 伴侣应用程序,当我第一次向 pebble 发送数据(Android 应用程序到 pebble watch )时,它被接受/接收并正确显示在 pebble
我们正在使用pebble引擎,我知道PebbleEngine实例可以重用来解析不同的模板。就我而言,我最初将引擎的加载器设置为 StringLoader 实例,并重用相同的引擎来处理多个不同的模板。我
我一直在尝试让一个应用程序在我的卵石上运行一段时间,我终于让它运行了。这是一个体育计数器,可以记录两支球队的得分,中间还有一个内置秒表。一切正常,但如果秒表运行 42 秒,则计数器的字体会变得非常小。
我正在创建一个非常简单的卵石应用程序。 目标:当我单击 Android 应用程序时,Pebble 应用程序会显示我从 Android 应用程序发送的消息。 问题:文本不会更改/显示在卵石上。 代码 P
我正在使用带有 Spring Boot 2 的 Pebble 模板引擎,在我开始使用继承之前一切都工作正常。浏览器显示一个空白页面,根本没有返回任何内容。不幸的是,服务器和 Catalina(我使用的
我使用 CloudPebble 和 Simply.js 为我的 pebble 创建了一个应用程序。 从 Cloudpebble 中的 Simply.js 基础应用程序构建我创建了自己的应用程序并成功安
我正在尝试使用自定义字体和位图图像创建一个简单的表盘。当我刚刚显示时间时,它工作正常。我只使用了 1 个 TextLayer。 static TextLayer *s_time_layer; 然后我决
我是一名优秀的程序员,十分优秀!