我在Pebble表盘上工作,遇到问题,app_message_outbox_send函数似乎抛出一个错误(然后崩溃我的应用程序)。错误是“[INFO] E call_internal.c:36系统调用失败!0..0x8不在应用程序空间中。”
相关代码:
static void askPhoneForCharge(){
if(bluetooth_connection_service_peek()){
DictionaryIterator *iter;
app_message_outbox_begin(&iter);
dict_write_uint8(iter, KEY_PHONE_ASK, 0);
app_message_outbox_send();
}else{
phoneCharging = 0;
phoneCharge = 0;
updatePhoneBattery();
}
}
以下是我如何设置处理程序并打开频道:
app_message_register_inbox_received(inboxReceivedCallback);
app_message_register_inbox_dropped(inboxDroppedCallback);
app_message_register_outbox_failed(outboxFailedCallback);
app_message_register_outbox_sent(outboxSentCallback);
app_message_open(app_message_inbox_size_maximum(), app_message_outbox_size_maximum());
答案 0 :(得分:2)
事实证明,在初始化阶段你不能使用消息功能,所以我启动了一个只执行一次的计时器来处理初始消息。
答案 1 :(得分:0)
我在发送app_message_outbox_send()命令时遇到了同样的问题,该命令被Up_button_click处理程序调用。 Init()方法中的以下初始化代码为我修复了它。 查看"注册消息处理程序" &安培; " Init缓冲区"
string.IsNullOrWhiteSpace(lastName)