app_message_outbox_send不在应用空间中

时间:2015-01-04 01:31:33

标签: pebble-watch pebble-sdk

我在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());

2 个答案:

答案 0 :(得分:2)

事实证明,在初始化阶段你不能使用消息功能,所以我启动了一个只执行一次的计时器来处理初始消息。

答案 1 :(得分:0)

我在发送app_message_outbox_send()命令时遇到了同样的问题,该命令被Up_button_click处理程序调用。 Init()方法中的以下初始化代码为我修复了它。 查看"注册消息处理程序" &安培; " Init缓冲区"

string.IsNullOrWhiteSpace(lastName)