Mam problem z utrzymaniem połączenia za pomocą programu Multipeer Connectivity Framework w iOs7. Obecnie moja aplikacja programowo obsługuje przeglądanie i reklamowanie za pomocą MCNearbyServiceAdvertiser i MCNearbyServiceBrowser. Mam widok alertu, który pyta użytkownika, czy jest przeglądarką, czy reklamodawcą. Po powrocie z tego widoku tworzę instancję odpowiednio MCNearbyServiceAdvertiser lub Browser.Rozłączanie wielu światłowodów
#pragma - Alert Delegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
_browser = [[MCNearbyServiceBrowser alloc]initWithPeer:_peerID serviceType:@"Context-xl"];
[_browser setDelegate:self];
[self.detailViewController setRemote:YES];
[_browser startBrowsingForPeers];
} else
{
_advertiser = [[MCNearbyServiceAdvertiser alloc]initWithPeer:_peerID discoveryInfo:nil serviceType:@"Context-xl"];
[_advertiser setDelegate:self];
[self.detailViewController setRemote:NO];
[_advertiser startAdvertisingPeer];
}
[self.detailViewController configureView];
}
Moja sesja delegat metoda wzajemnej ... DidChangeState ... jest uzyskiwanie wywołana dwukrotnie, raz na connect i ponownie na wyłączniku. Nie zatrzymuję reklamodawcy ani przeglądarki po rozpoczęciu sesji. Czy powinienem przerwać przeglądanie/reklamę?
Nadal nad tym pracuję. Pomyślałem, że być może ustawienie punktów przerwania powoduje odłączenie urządzeń, co wydaje się być w rzeczywistości. Jednak urządzenia nie pozostają połączone podczas normalnego działania. –
Mam ten sam problem. Urządzenia łączą się nieco, a następnie odłączają i nie pozostaną podłączone lub ponownie się połączą. –
To się zdarzyło, kiedy robiłem przesyłanie plików za pomocą metody sendData: ToPeer MCSession. Odtąd przełączam się do otwierania strumienia przy użyciu metody startStream: withName, a urządzenia pozostają w kontakcie. –