簡體   English   中英

WatchOS 3:為什么WCSession從未在iPhone上激活?

[英]WatchOS 3 : Why does WCSession never activate on iPhone?

我正在創建一個簡單的應用程序,其中涉及Apple Watch和iPhone之間的通信。

當前在WatchOS 3.2.2上使用iPhone 6s(10.3.2)

我無法讓兩者進行交流,我的難題是WCSession無法在iPhone上激活。

當WatchOS代碼運行時,控制台將按預期方式打印出“ activationDidCompleteWithState”,表明WCSession已被激活(請參見下面的代碼)。

但是,在iOS端,“ activationDidCompleteWithState”方法永遠不會打印到控制台。 如果我嘗試從手表向手機發送消息,它們會超時,並且出現以下錯誤:

[WC]-[WCSession onqueue_handleMessageCompletionWithError:withMessageID:] 109FE5D2-6218-4D67-AFD7-E72FA7E4A22E由於WCErrorCodeTransferTimedOut-> IDSErrorTypeTimedOut-> IDSResponseTimedOut

我相信WCSession永遠不會在電話上激活。 有人見過這個問題嗎? 我為此而發瘋...

我以前是使用WatchOS 2構建的,並且運行良好。 不知何故,對WatchOS 3的更新使我深感滿意。我們將不勝感激。

AppDelegate.m中的iOS代碼:

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([WCSession isSupported])
    {
        WCSession* session = [WCSession defaultSession];
        session.delegate = self;
        [session activateSession];
    }

    return YES;
}
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState
          error:(NSError *)error
{
    NSLog(@"PHONE - activationDidCompleteWithState");
}

ExtensionDelegate.m中的WatchOS代碼:

@implementation ExtensionDelegate
- (void)applicationDidFinishLaunching
{
    if ([WCSession isSupported])
    {
        WCSession* session = [WCSession defaultSession];
        session.delegate = self;
        [session activateSession];
    }
}
- (void)session:(WCSession *)session activationDidCompleteWithState:(WCSessionActivationState)activationState
          error:(NSError *)error
{
    NSLog(@"activationDidCompleteWithState");
}

好的,我知道了。

我給iPhone重新通電,使WCSession在手機上工作。 不得不取消配對手表,然后重新配對。

現在正在工作。 廢話總數...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM