gpt4 book ai didi

ios - 禁用连接警报 Multipeer Connectivity

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:14 24 4
gpt4 key购买 nike

我想为我的应用程序使用 Multipeer Connectivity 功能。 APP功能简介:该应用程序应扫描运行该应用程序的其他设备(在后台),连接到它们并传输一些数据。所有这些都无需与用户交互。

问题:是否可以使用 multipeer 连接到其他设备,但不必显示另一个设备想要连接的警报 View 并强制用户接受或拒绝连接?有没有一种方法可以让我以编程方式接受来自其他设备的所有传入连接?如果是,怎么办?

提前致谢!

最佳答案

这里有两个问题:

The app should scan for other devices running the app (in background)

这里的答案是否定的——MPC 在后台不工作(参见 this so response)

第二个问题:

is it possible to connect to other devices using multipeer but without having to show the alert

答案是肯定的.. 你需要的所有细节都可以在苹果文档中找到。以下是我所做工作的一些片段:

在一台设备上 - 启动浏览器

_serviceBrowser = [[MCNearbyServiceBrowser alloc] initWithPeer:_peerID
serviceType:_sessionName];

[_serviceBrowser startBrowsingForPeers];

在另一台设备上 - 启动广告程序

_serviceAdvertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:_peerID
discoveryInfo:nil
serviceType:_sessionName];
[_serviceAdvertiser startAdvertisingPeer];

这些服务实现委托(delegate)功能来通知您的应用可能的连接。在这里,浏览器被告知广告商,现在邀请对等方加入 session

- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID     withDiscoveryInfo:(NSDictionary *)info
{
[browser invitePeer:peerID toSession:_session withContext:nil timeout:30.0];

}

然后广告商回应

- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:    (MCPeerID *)peerID withContext:(NSData *)context invitationHandler:(void(^)(BOOL accept, MCSession *session))invitationHandler
{
invitationHandler(YES, _session);
}

现在您将收到一个 session 委托(delegate)电话,告知您对等连接的状态。此时您应该已连接 - 不需要“真正的”用户交互。

- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state

关于ios - 禁用连接警报 Multipeer Connectivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22428855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com