卵石通信问题[AppSync / AppMessage]

时间:2014-06-26 15:54:00

标签: android pebble-watch pebble-sdk cloudpebble

我目前正在尝试使用AppSync在Android应用和pebble应用之间同步一段数据。但是,我似乎无法让鹅卵石意识到正在传输任何数据 - 也就是说,没有任何日志会在它们应该生成的地方生成。真正令我困扰的是,这实际上是卵石天气示例中的代码。我已粘贴下面的相关代码 - 有人可能会查看它并建议可能存在的问题吗?我已经确定两个程序中的UUID(pebble app和android app)是相同的,并且它们在同一个网络上,并且pebble实际连接到手机,并且android功能实际上是叫和所有。

Pebble应用代码片段:

static void sync_error_callback(DictionaryResult dict_error, AppMessageResult app_message_error, void *context) {
    APP_LOG(APP_LOG_LEVEL_DEBUG, "App Message Sync Error: %d", app_message_error);
}

static void sync_tuple_changed_callback(const uint32_t key, const Tuple* new_tuple, const Tuple* old_tuple, void* context) {
  APP_LOG(APP_LOG_LEVEL_DEBUG, new_tuple->value->cstring);
}

void home_screen_load() {
    // set up each one of the SimpleMenuItems
    Tuplet initial_values[] = {
        TupletCString(0x0, "Initial 1")
    };

    app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL);
}

Android应用程序片段:

    final UUID PEBBLE_APP_UUID = UUID.fromString("10549fd4-1fe4-4d30-8a18-6f2f8149f8fd");

public void sendDataToWatch(String toSend) {
    // Build up a Pebble dictionary containing the weather icon and the current temperature in degrees celsius
    PebbleDictionary data = new PebbleDictionary();
    data.addString(0x0, toSend);
    PebbleKit.sendDataToPebble(getApplicationContext(), PEBBLE_APP_UUID, data);
}

1 个答案:

答案 0 :(得分:1)

要调试此类问题,您应该设置一个inbox_dropped处理程序,看看是否有任何处理。

初始化AppMessage和AppSync后,请致电:

app_message_register_inbox_dropped(appmsg_in_dropped);

并添加此功能:

static void appmsg_in_dropped(AppMessageResult reason, void *context) {
  APP_LOG(APP_LOG_LEVEL_DEBUG, "In dropped: %s", translate_error(reason));
}

请查看this question了解translate_error函数的来源。