私の iOS アプリでは、次のように時計にメッセージを送信したいと考えています。
NSMutableDictionary *message = @{@(1): @(1),
@(2): @"The String"}
[_watch appMessagesPushUpdate:message onSent:^(PBWatch *watch, NSDictionary *update, NSError *error) {
if (error != nil)
NSLog(@"Error sending message: %@", error);
}];
このように送信している場合は機能します。しかし、文字列が長い場合、または辞書に 3 つまたは 4 つ以上のキーを追加した場合、メッセージは配信されません。エラーは「アプリが時間内にメッセージを確認しませんでした」です。
私の小石アプリでは、次のことを行います。
static void message_handler(DictionaryIterator *iter, void *context) {
APP_LOG(APP_LOG_LEVEL_DEBUG, "Received message.");
Tuple *msg_type_tuple = dict_find(iter, PebbleMessageKeyType);
Tuple *msg_value_tuple = dict_find(iter, PebbleMessageKeyValue);
write_line_on_screen(msg_value_tuple->value->cstring);
}
...
// Set sniff interval.
app_comm_set_sniff_interval(SNIFF_INTERVAL_NORMAL);
// Register message handlers
app_message_register_inbox_received(message_handler);
app_message_register_inbox_dropped(message_dropped);
// Init buffers
app_message_open(app_message_inbox_size_maximum(), app_message_outbox_size_maximum());
APP_LOG(APP_LOG_LEVEL_DEBUG, "App Message set up.");
私の考えでは、メッセージのサイズと関係があると思います。しかし、メッセージが非常に小さいとは想像できませんか? ToDo リストの例では、app_message_open を使用し、inbox パラメーターに 64、outbox パラメーターに 16 の値を使用していることがわかりました。これはどのような単位を意味しますか? 64文字?メッセージが小石に届いたときのメッセージの大きさを iOS 側で知るにはどうすればよいですか?