检测会话当前是不是处于活动状态并加入而不是开始新的会话
Posted
技术标签:
【中文标题】检测会话当前是不是处于活动状态并加入而不是开始新的会话【英文标题】:Detected if a session is currently active and join instead of starting a new one检测会话当前是否处于活动状态并加入而不是开始新的会话 【发布时间】:2014-03-07 18:05:33 【问题描述】:我在 ios 发送者应用程序上遇到了 chromecast 应用程序会话管理的一个小问题。
我希望能够在接收器上创建应用会话并开始播放。 在发件人上进行播放时关闭发件人应用程序。 再次打开应用程序并在同一设备上连接。 加入同一个会话并重新获得对接收器的控制权,而无需暂停/停止播放或重新启动整个会话。
目前我正在跟踪我连接的设备的会话 ID 并执行
- (BOOL)joinApplication:(NSString *)applicationID sessionID:(NSString *)sessionID;
但我无法区分新会话和旧会话。 有没有办法知道 Chromecast 设备连接到的当前会话 ID? 那就是知道我是否应该调用加入或启动应用程序并开始一个新会话。
【问题讨论】:
【参考方案1】:如果您只想加入之前的会话,那么调用 joinApplication 并传递您的旧 sessionId 应该会成功(如果它仍然是同一个会话)或者会失败(如果它是不同的会话,无论是来自同一个应用程序还是不同的应用程序)。这不是你想要的吗?
【讨论】:
那么,解决方案是调用加入,如果调用失败?通过调用 [_manager launchWithAppID:kAppID relaunchIfNeeded:NO] 并为该会话创建新的媒体通道,我设法达到了预期的效果,但尚未正确测试。对于我发现的任何相关内容,我都会更新这个问题。干杯! 正如我所说,如果您只想在应用程序正在运行且不启动新应用程序时加入,您需要使用 joinApplication 并传递您的会话 ID。如果你想在它正在运行时加入并在它没有运行时启动,那么使用launchApplication。即使应用程序已经在那里运行,launchApplication 也需要一个强制重新启动的参数;你可能不想要那个。以上是关于检测会话当前是不是处于活动状态并加入而不是开始新的会话的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 和 Android 的给定时间检测用户是不是仅在一台设备上处于活动状态
检查 sessionid 已知的 PHP 会话是不是处于活动状态
如何检测 UIAccessibilityRequestGuidedAccessSession 在设备上是不是处于活动状态,iOS swift?