我正在尝试创建自己的Pebble表盘.似乎还没有人这样做,并且没有SDK.
到目前为止,我已经发现表盘是在这里托管的:http: //pebble-static.s3.amazonaws.com/watchfaces/index.html
每个表盘都是一个.pbw文件,它是一个zip文件.里面有3个文件:app_resources.pbpack,manifest.json和pebble-app.bin.
JSON文件包含表面(图像)的所有部分的列表,这些部分似乎是一个应用程序..bin文件可能是可执行二进制文件,.pbpack文件可能是所有资源的捆绑包.我无法弄清楚如何提取.pbpack文件.我也不确定如何处理.bin文件.
我想在这里发布我的进展:http://hackingpebble.tumblr.com
有关如何处理.pback和.bin文件的任何想法?
我仍然是Android的新手,我正在努力改进我的通知进度条以使其更顺畅,不会为我的Pebble点燃一百万次更新并以"正确的方式"进行.此代码工作"正常",就像我使用它时,通知绘制和进度条按预期完成.
当我将Pebble手表设置为接受我的应用程序通知时,这对我来说成了一个问题.这导致每个上传的图像振动约50次,具体取决于上传速度的速度.
作为一个初学者,我认为我这样做是错的,有一个更好的方法来做我想做的事情.
我的通知的进度条使用以下代码更新:
private int upload_progress;
private Long time_previous_progress = Calendar.getInstance().getTimeInMillis();
protected void onProgressUpdate(Integer... progress) {
Long time_now = Calendar.getInstance().getTimeInMillis();
if(
((time_now - time_previous_progress) < 55) // 55ms minimum delay
|| (progress[0] < 0 && progress[0] > 100) // progress >0 && <100
|| progress[0].equals(upload_progress) // progress changed
|| ! App.getStatus() // watcher is running
)
{
return;
}
time_previous_progress = time_now;
upload_progress = progress[0];
int upload_counter = getUploadCounter();
int upload_total = db.getReadyImagesCount();
NotificationHandler.notify(context, upload_progress, upload_counter, (upload_total + upload_counter)); …Run Code Online (Sandbox Code Playgroud) notifications android progress android-notifications pebble-watch
你们大多数人都可能知道鹅卵石手表,这款手表会收到你手机推送通知.
他们能够接收一些通知.
我怎么能这样做?也许他们使用facebook api或类似的东西写了一些他们自己的通知.但是如何用短信和电话做到这一点?
你能收到什么通知?
当我在Pebble上记录错误时,如下所示:
static void message_dropped(AppMessageResult reason, void *context) {
APP_LOG(APP_LOG_LEVEL_DEBUG, "Message dropped. Reason: %d", reason);
}
Run Code Online (Sandbox Code Playgroud)
我只是得到错误消息的int值.是否有一种简单的方法来记录枚举的文本?喜欢:
static void message_dropped(AppMessageResult reason, void *context) {
APP_LOG(APP_LOG_LEVEL_DEBUG, "Message dropped. Reason: %fancy", reason);
}
// Would return "APP_MSG_BUFFER_OVERFLOW"
Run Code Online (Sandbox Code Playgroud) 标题总结了它.同样的问题在这里.发布SO以查看我是否可以获得任何帮助.我还做了一个几乎最小的项目来演示我面临的问题,所以后面的链接指向所提到的代码片段.
对我目前正在做的事情一无所知:
.pebble_app_connection_handler.app_message_outbox_send().当然,当BT连接启动时.BroadcastReceiver侦听这些消息并调用IntentService.IntentService 计算数据,将其推送到手表并在一段时间后将其设置为再次运行.我期待的是:
app_message_outbox_send()返回一个值,告诉消息启动是否有任何错误.通常,这是APP_MSG_OK,但它可以APP_MSG_BUSY,而且我完全清楚这一点.app_message_register_inbox_received和朋友)以指示向电话发送消息的异步过程是否真的有效.这在文档中说明.我所看到的:
加载表盘时会发生预期的步骤,因为我会手动触发更新.但是,当BT连接事件触发更新时,会发生预期的步骤1和2,但不会执行步骤3.
这是特别严重的,当我APP_MSG_OK在第2步,因为我应该有理由期待手表的一切都OK,我就准备自己接受一些应用程序消息回调里面.基本上,文档告诉我等待一个永远不会到来的电话.
这种情况100%发生.
感谢您的任何帮助.我有另一个解决方案,使用手表来跟踪更新间隔,但我相信这个允许我通过利用最近的Android功能节省更多的电池.
asynchronous bluetooth callback pebble-watch pebble-appmessage
我正在创建一个pebble watch app,我想创建一个表单,用户可以为某些参数提供输入.
喜欢的东西这将成为我不够好,但我不能找到一种方法在文档中创建它(也许我不知道在哪里以及如何找到它).
任何人都可以为我提供更好的方法来完成用户输入功能,还是有人知道这个主题?
ps我希望用户提供2-3个整数,稍后将在应用程序中使用.
刚拿到我的Pebble,我正在玩SDK.我是C的新手,但我知道Objective-C.那么有没有办法创建这样的格式化字符串?
int i = 1;
NSString *string = [NSString stringWithFormat:@"%i", i];
Run Code Online (Sandbox Code Playgroud)
我不能用sprintf,因为没有malloc.
我基本上要显示int与text_layer_set_text(&countLayer, i);
我正在构建一个互联网连接的BitCoin应用程序.观看不同比特币市场的股票信息.一切正常.现在我想将一个可用市场列表发送到手表以显示为菜单.要发送的JSON:
{"markets": ["MtGox", "BitStamp","BTCChina"]}
"市场"在"appinfo.json"中正确键入,因此这不是问题.
如何在Pebble上访问此数组中的元素(单个字符串)?我已经看到了直接访问整数和字符串的例子,这些工作很棒,有什么好的例子吗?我还没找到.
知道为什么XMLHttpRequest使用正确的凭据在Pebble JS FrameworkAndroid上的基本身份验证失败但在iOS中有效吗?
完全相同的代码,类似于:
var req = new XMLHttpRequest();
req.open(method, url, true, user, pass);
req.send(data);
req.onreadystatechange = function() { ... }
Run Code Online (Sandbox Code Playgroud)
从Android Pebble应用程序返回401,但在iOS中正确验证.
我正在调查C中的Telegram客户端,以便我可以为Pebble smartwatch/s编写客户端.我理解Pebble方面,以及此处显示的所有Telegram方法,但我完全不知道如何在C中发送这些方法.
我认为它与"TL语言"和MTProto服务有关,但我认为这些东西超出了我目前的理解.我也找到了这个代码集,但又一次,不知道如何使用它https://github.com/vysheng/tgl/.
编辑1:
在手机上运行PebbleKitJS部分的基于C的应用程序似乎是最佳途径.有关使用JS实现MTProto的任何帮助吗?