我目前正在尝试使用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);
}
答案 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
函数的来源。