pebbleCentral:在iOS上永远不会调用watchDidConnect

时间:2016-01-27 09:13:20

标签: ios pebble-sdk

我有一块旧的Pebble Classic手表,升级到最新固件(3.8.2)并使用最新的Pebble-SDK。

我已经按照几个简单的步骤来安装SDK,设置Xcode项目并添加代码来初始化和连接: https://developer.getpebble.com/guides/mobile-apps/ios/

我的问题是,委托方法pebbleCentral:watchDidConnect永远不会被调用!

我正在使用iPad上的Pebble Time应用程序在手表中安装watchApp,因此我知道iPad已连接到手表。同样的iPad运行iOS应用程序,显然没有发现手表。

我曾尝试从同事那里导入旧的测试项目,该同事在一两年前就开始运行了。相同的手表,相同的watchApp,但当然是较旧的固件和SDK版本。同样的结果......

我认为卵石网站上的文档非常简单易懂。但是,我觉得我错过了一些关于如何以及何时触发这个watchDidConnect的解释。

我很可能在某个地方错过了一些简单的步骤,但我很遗憾在哪里看!

欢迎任何想法!

编辑:我的代码如下:

ViewController.h:

#import <UIKit/UIKit.h>
@import PebbleKit;

@interface ViewController : UIViewController<PBPebbleCentralDelegate>

@end

ViewController.m:

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) PBWatch* connectedWatch;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [PBPebbleCentral defaultCentral].delegate = self;

    [[PBPebbleCentral defaultCentral] run];

    NSLog(@"Pebble initialised");
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)pebbleCentral:(PBPebbleCentral*)central watchDidConnect (PBWatch*)watch isNew:(BOOL)isNew {
    NSLog(@"Pebble connected: %@", [watch name]);
    self.connectedWatch = watch;
}

- (void)pebbleCentral:(PBPebbleCentral*)central watchDidDisconnect:(PBWatch*)watch {
    NSLog(@"Pebble disconnected: %@", [watch name]);

    if ([watch isEqual:self.connectedWatch]) {
        self.connectedWatch = nil;
    }
}

@end

1 个答案:

答案 0 :(得分:0)

在设置Pebble中心后,您是否正在调用-run方法?我注意到您发布的链接中的代码段并未显示正在设置的中心delegate

[PBPebbleCentral defaultCentral].delegate = self; // Set your delegate

[PBPebbleCentral defaultCentral].appUUID = [[NSUUID alloc] initWithUUIDString:@"Your Pebble App UUID"]; // Set the app UUID

[[PBPebbleCentral defaultCentral] run]; // Call -run on the central