我有一块旧的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
答案 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