1

時計で私はこのような AppMessage を送信します

DictionaryIterator *iter;
app_message_outbox_begin(&iter);
Tuplet value = TupletInteger(MESSAGE_TYPE, MESSAGETYPE_REFRESH);
dict_write_tuplet(iter, &value);
app_message_outbox_send();

チュートリアルで説明されているように、アプリのバックグラウンド モードとプロトコルを設定します。iOS では、リスナーを次のように設定します。

[PBPebbleCentral defaultCentral].delegate = self;
self.watch = [PBPebbleCentral defaultCentral].lastConnectedWatch;

NSLog(@"Pebble name: %@", _watch.name);
NSLog(@"Pebble serial number: %@", _watch.serialNumber);

[_watch appMessagesAddReceiveUpdateHandler:^BOOL(PBWatch *watch, NSDictionary *update) {
    NSLog(@"Update received!");
    return YES;
}];

[_watch appMessagesAddReceiveAllUpdatesHandler:^BOOL(PBWatch *watch, NSUUID *uuid, NSDictionary *update) {
    NSLog(@"AllUpdate received!");
    return YES;
}];

[_watch appMessagesAddAppLifecycleUpdateHandler:^(PBWatch *watch, NSUUID *uuid, PBAppState newAppState) {
    NSLog(@"AppLifecycleUpdate received!");
}];

私はすでに電話から時計にメッセージを送信しました。そのように動作します。ただし、電話での着信メッセージのリスナーは呼び出されません。時計APP_MSG_SEND_TIMEOUTにエラーコードとして表示されます。私は何を間違えましたか?

4

3 に答える 3

0

リスナーを配置する場所に注意してください。たとえば、WeatherDemo アプリ (Pebble が提供) を使用している場合は、アプリの UUID を設定した後に行う必要があります。

// Test if the Pebble's firmware supports AppMessages / Weather:
  [watch appMessagesGetIsSupported:^(PBWatch *watch, BOOL isAppMessagesSupported) {
    if (isAppMessagesSupported) {
      ...

        [_targetWatch appMessagesAddReceiveUpdateHandler:^BOOL(PBWatch *watch, NSDictionary *update) {
            NSLog(@"Received message: %@", update);

            return YES;
        }];
    } else {
....

もう 1 つ注意すべきことは - (void)pebbleCentral:(PBPebbleCentral*)central watchDidConnect:(PBWatch*)watch isNew:(BOOL)isNew 、デバイスが既に接続されている場合、この関数は呼び出されないため、下に置かないことです。

于 2014-04-07T13:15:15.730 に答える
0

使用していることを確認してください

appMessagesAddReceiveUpdateHandler:withUUID:

それ以外の

appMessagesAddReceiveUpdateHandler:
于 2014-02-06T21:04:34.523 に答える