1

iOS 7 のマルチピア接続フレームワークを介して 2 つの iOS 7 デバイスを接続しようとしています。Bluetooth を使用してそれらを接続できます。コードでは、Bluetooth などについては何も言及していません。

マルチピア ドキュメント

Multipeer Connectivity フレームワークは、インフラストラクチャ Wi-Fi ネットワーク、ピアツーピア Wi-Fi、および Bluetooth パーソナル エリア ネットワークを使用して近くの iOS デバイスによって提供されるサービスを検出し、その後、メッセージベースのデータ、ストリーミング データを送信することによってそれらのサービスと通信するためのサポートを提供します。 、およびリソース (ファイルなど)。

いずれかのデバイスの Bluetooth をオフにすると、機能しなくなります。

ブルートゥースの範囲は非常に遅いので、カバーするには広いエリアが必要です。では、Wi-Fi またはピアツーピア Wi-Fi を介して 2 つのデバイスを接続する方法を教えてください。

コード: .h ファイル

@interface SessionManager : NSObject <MCSessionDelegate, MCAdvertiserAssistantDelegate, MCBrowserViewControllerDelegate>

// current peer
@property (nonatomic, readonly) MCPeerID *myPeer ;

// current session
@property (nonatomic, readonly) MCSession *session;

// current advertise
@property (nonatomic, readonly) MCAdvertiserAssistant *advertiser ;

// current browser
@property (nonatomic, readonly) MCBrowserViewController *browser ;

//To start advertising current device
- (void)start;

//To stop advertising current device
- (void)stop;

@end

.m ファイル:

- (id)init
{
    self = [super init];

    if (self)
    {
        _myPeer = [[MCPeerID alloc] initWithDisplayName:[[UIDevice currentDevice] name]];

        _session = [[MCSession alloc] initWithPeer:_myPeer securityIdentity:nil encryptionPreference:MCEncryptionNone];
        _session.delegate = self;

        _advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"Connect" discoveryInfo:nil session:_session];
        _advertiser.delegate = self;

        _browser = [[MCBrowserViewController alloc] initWithServiceType:@"Connect" session:_session];
        _browser.delegate = self;
    }

    return self;
}

 - (void)start
 {
    [_advertiser start];
 }

どんな助けでも大歓迎です。

4

2 に答える 2

2

フレームワークは LAN 経由で実行されず、Bluetooth または WI-FI に直接アクセスするより低いレベルであるため、チェックされた回答は間違っています。つまり、同じ SSID の同じネットワーク上にいる必要はなく、WI-FI がオンになっているだけです。ルーターとBluetoothをオフにするなど、両方のデバイスをLANからログオフしたままにすると、それらがまだ接続できることがわかります. ただし、Apple がその部分を自動化することを決定したため、フレームワークに bluetooth または WI-FI を直接使用するようにドリルダウンできないという意味では、部分的には正しいです。

于 2016-07-25T13:35:27.493 に答える