2014-11-17 13 views
82

Podłączanie i odłączanie do urządzeń Bluetooth daje różne wyniki w systemie Windows Phone/Desktop 8.1. Używałem przestrzeni nazw Windows.Devices.Bluetooth.Rfcomm i próbowałem podłączyć kilka urządzeń z różnymi wersjami/klasami Bluetooth.(Dis) Podłączanie urządzeń Bluetooth za pomocą Windows.Devices.Bluetooth.Rfcomm (WP8.1)

  • w wersji 1.2 (klasa 1 i 2)
  • Wersja 2.0 (klasa 1 i 2)
  • Wersja 2.1 (klasa 1 i 2)
  • Testowane na Nokia Lumia 625 i Lumia 635, Dell Latitude E6500 i Dell Precision M6400.

Zawsze, gdy próbuję połączyć się z jednym z urządzeń 2.0 lub 2.1, występują problemy. Za pierwszym razem, gdy spróbuję połączyć się z każdym urządzeniem, wszystko pójdzie dobrze i połączenie się otworzy. Kiedy następnie zamknę połączenie i ponownie podłączę urządzenie, problem zacznie się. Podczas ponownego łączenia połączenia nigdy nie otwarty i debugger rzuci System.Exception:

> Message: No further data is available. 

Również, gdy połączenie nie powiedzie urządzeń Windows 8.1 będzie na bieżąco stara się (bezskutecznie) połączyć z Bluetooth Urządzenia same w sobie, nawet gdy moja własna aplikacja zostanie rozwiązana. Czasami urządzenie z systemem Windows 8.1 wyświetla również podłączone urządzenie Bluetooth, a urządzenie wizualnie pokazuje, że nie jest już podłączone. Jedynym sposobem na ponowne podłączenie urządzenia Bluetooth jest sparowanie go i wyłączenie/ponowne uruchomienie połączenia Bluetooth na urządzeniu z systemem Windows.

Zawsze, gdy próbuję wykonać nowe połączenie z numerem DeviceInformation po nieudanym połączeniu, odmówię zwrotu urządzenia, które wcześniej próbowałam połączyć.

> Message: The service cannot be found in the specified name space. 

Dziwny wynik, urządzenia 1.2 działają idealnie.

plik spisu:

<m2:DeviceCapability Name="bluetooth.rfcomm"> 
    <m2:Device Id="any"> 
    <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/> 
    </m2:Device> 
</m2:DeviceCapability> 

Wybór urządzenia:

Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB"); 
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid))); 

Łączenie (id = chatserviceid)

StreamSocket _socket;  
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id); 
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName); 

odłączanie:

this._socket.Dispose(); 
this._socket = null; 

Sprawdziłem MSDN, próbki kodu, wersje demonstracyjne, wideo kanału 9 i StackOverflow, żaden zasób nie może mi powiedzieć, czy są problemy z Windows.Devices.Bluetooth.Rfcomm.

Czy istnieje ktoś, kto rozpoznaje te dziwne wyniki? czy robię coś źle?

UPDATE: Praca z Windows Phone 8.1 GDR2 jest możliwe rozwiązanie.

UWAGA: Dla mnie i kilku innych osób ta aktualizacja nadal powoduje takie same problemy.

+2

Witam gl77 - Pracuję nad tym problemem na Twoim koncie MSDN. Zaktualizowałem wątek i zaktualizuję go, gdy będę wiedział więcej. –

+0

Czy znalazłeś rozwiązanie tego problemu? Mam podobny problem, który działa na jednym urządzeniu, ale nie na innym. Jedna uwaga to urządzenie, które działa, działa sterownik Bluetooth firmy Intel: 17.0.1401.422, a urządzenie, które nie działa, obsługuje sterownik Bluetooth Intela: 17.0.1405.460. –

+0

Nie znalazłem jeszcze rozwiązania, zespół Matta wciąż pracuje nad tym problemem. Miejmy nadzieję na naprawę w najbliższej przyszłości. – ggg

Odpowiedz

1

Chciałbym wypróbować CoolTerm i zobaczyć, czy to działa dla Ciebie. Miałem podobny problem z podłączeniem głośnika z chipem Sigma DSP w środku za pośrednictwem połączenia USB, więc jeśli masz problemy z wyświetlaniem urządzeń zewnętrznych, może to oznaczać, że urządzenie jest niezgodne z twoim komputerem. Pobierz CoolTerm i przejdź do opcji i pod portem szeregowym powinieneś zmienić swój port na żądane połączenie (bluetooth, usb, itp.). Następnie edytuj opcje w razie potrzeby i przejdź do okna głównego i kliknij Połącz i sprawdź, czy to działa.

Powiązane problemy