Bluetooth cihazlarına bağlanma ve bağlantıyı kesme, Windows Phone / Masaüstü 8.1'de çeşitli sonuçlar veriyor. Windows.Devices.Bluetooth.Rfcomm
Ad alanını kullanıyorum ve farklı Bluetooth sürümlerine / sınıflarına sahip birkaç cihazı bağlamayı denedim.
- Sürüm 1.2 (Sınıf 1 ve 2)
- Sürüm 2.0 (Sınıf 1 ve 2)
- Sürüm 2.1 (Sınıf 1 ve 2)
- Nokia Lumia 625 ve Lumia 635, Dell Latitude E6500 ve Dell Precision M6400 üzerinde test edilmiştir.
2.0 veya 2.1 cihazlarından birine bağlanmaya çalıştığımda sorunlar oluyor. Cihazların her birine ilk kez bağlanmaya çalıştığımda her şey yoluna girecek ve bağlantı açılacak. Daha sonra bağlantıyı kapattığımda ve cihazı yeniden bağladığımda sorun başlıyor. Yeniden bağlanma sırasında bağlantı hiçbir zaman açılmaz ve hata ayıklayıcı bir System.Exception oluşturur:
> Message: No further data is available.
Ayrıca, bağlantı başarısız olduğunda, Windows 8.1 cihazları, kendi uygulamam sonlandırılsa bile Bluetooth Cihazlarına kendi başlarına bağlanmaya (başarısız bir şekilde) devam edecek. Bazen Windows 8.1 cihazı, Bluetooth cihazını bağlı olarak gösterirken, cihaz görsel olarak artık bağlı olmadığını gösterir. Bluetooth cihazını yeniden bağlamanın tek yolu, eşlemesini kaldırmak ve Windows cihazında Bluetooth'u kapatmak / yeniden başlatmaktır.
DeviceInformation
Başarısız bir bağlantıdan sonra yeni bir arama yapmaya çalıştığımda, daha önce bağlanmaya çalıştığım cihazı geri göndermeyi reddediyor.
> Message: The service cannot be found in the specified name space.
Garip sonuç, 1.2 cihazları mükemmel çalışıyor.
Manifest Dosyası:
<m2:DeviceCapability Name="bluetooth.rfcomm">
<m2:Device Id="any">
<m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
</m2:Device>
</m2:DeviceCapability>
Cihaz Seçimi:
Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));
Bağlanıyor: (id = chatserviceid)
StreamSocket _socket;
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);
Bağlantı kesiliyor:
this._socket.Dispose();
this._socket = null;
MSDN, kod örnekleri, demolar, kanal-9 videoları ve StackOverflow'u araştırdım, sorun olup olmadığını hiçbir kaynak bana söyleyemez Windows.Devices.Bluetooth.Rfcomm
.
Bu garip sonuçları fark eden biri var mı? Yanlış bir şey mi yapıyorum?
GÜNCELLEME: Windows Phone 8.1 GDR2 ile çalışmak olası bir çözümdür.
NOT: Kendim ve diğer birkaç kişi için bu güncelleme hala aynı sorunları veriyor.