(Dis) Bluetooth cihazlarını Windows.Devices.Bluetooth.Rfcomm (WP8.1) ile bağlama


82

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.RfcommAd 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.

DeviceInformationBaş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.


2
Merhaba gl77 - MSDN hesabınızda bu sorun üzerinde çalışıyorum. Konuyu güncelledim ve daha fazlasını öğrendiğimde sizi güncelleyeceğim.
Matt Small

Bunun için bir çözüm buldunuz mu? Bir cihazda çalışıp başka bir cihazda çalışmadığı benzer bir sorun yaşıyorum. Bir not, Intel'in Bluetooth sürücüsünü çalıştıran cihazdır: 17.0.1401.422, çalışmayan Intel'in Bluetooth sürücüsünü çalıştırır: 17.0.1405.460.
Jon H

Henüz bir çözüm bulamadım, Matt'in ekibi hala sorun üzerinde çalışıyor. Yakın gelecekte bir düzeltme umalım.
ggg

2
Donanım üretimi, Intel Bluetooth sürücülerinin 17.0.1405.460 sürümünü kaldırarak ve eski 17.0.1401.422 sürümünün kurulumunda bana yol gösterdi. Bunu yaptıktan sonra uygulamam tekrar çalışmaya başladı. Yani benim için sorun yeni sürücülerdi.
Jon H

1
MSDN gönderisine bir bağlantı ekleyebilir misiniz?
SESSİZ

Yanıtlar:


1

CoolTerm'i deneyeceğim ve bunun sizin için işe yarayıp yaramadığını görüyorum. USB bağlantısı aracılığıyla içinde Sigma DSP yongası bulunan bir hoparlörü bağlarken benzer bir sorun yaşıyordum, bu nedenle harici aygıtları görmekte sorun yaşıyorsanız, aygıt bilgisayarınızla uyumlu olmayabilir. CoolTerm'i indirin ve seçeneklere gidin ve Seri Bağlantı Noktası altında Bağlantı Noktası'nızı istediğiniz bağlantıya (bluetooth, usb, vb.) Değiştirmelisiniz.Daha sonra seçenekleri gerektiği gibi düzenleyin ve ana pencereye gidin ve bağlan'a basın ve sizin için çalışıp çalışmadığını görün.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.