(Dis) Bluetooth 장치를 Windows.Devices.Bluetooth.Rfcomm (WP8.1)과 연결


82

Windows Phone / Desktop 8.1에서 Bluetooth 장치에 연결 및 연결 해제하면 다양한 결과가 나타납니다. 나는 Windows.Devices.Bluetooth.Rfcomm네임 스페이스를 사용하고 있으며 다른 Bluetooth 버전 / 클래스로 여러 장치를 연결하려고했습니다.

  • 버전 1.2 (클래스 1 및 2)
  • 버전 2.0 (클래스 1 및 2)
  • 버전 2.1 (클래스 1 및 2)
  • Nokia Lumia 625 및 Lumia 635, Dell Latitude E6500 및 Dell Precision M6400에서 테스트되었습니다.

2.0 또는 2.1 장치 중 하나에 연결하려고 할 때마다 문제가 있습니다. 처음으로 각 장치에 연결하려고하면 모든 것이 잘되고 연결이 열립니다. 나중에 연결을 닫고 장치를 다시 연결하면 문제가 시작됩니다. 다시 연결하는 동안 연결이 열리지 않고 디버거가 System.Exception을 throw합니다.

> Message: No further data is available.

또한 연결이 실패하면 Windows 8.1 장치는 내 응용 프로그램이 종료 된 경우에도 계속해서 Bluetooth 장치에 연결을 시도합니다 (실패). 때때로 Windows 8.1 장치는 Bluetooth 장치가 연결된 것으로 표시되는 반면 장치는 더 이상 연결되지 않은 것으로 시각적으로 표시합니다. Bluetooth 장치를 다시 연결하는 유일한 방법은 페어링을 해제하고 Windows 장치에서 Bluetooth를 종료 / 다시 시작하는 것입니다.

DeviceInformation연결이 실패한 후 새 전화를 걸 때마다 이전에 연결하려고했던 장치를 반환하지 않습니다.

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

이상한 결과, 1.2 장치는 완벽하게 작동합니다.

매니페스트 파일 :

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

장치 선택 :

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

연결 중 : (id = chatserviceid)

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

연결 해제 :

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

MSDN, 코드 샘플, 데모, 채널 9 비디오 및 StackOverflow를 조사했지만 Windows.Devices.Bluetooth.Rfcomm.

이 이상한 결과를 인식하는 사람이 있습니까? 내가 뭘 잘못하고 있니?

업데이트 : Windows Phone 8.1 GDR2로 작업하는 것이 가능한 해결책입니다.

참고 : 나 자신과 다른 여러 사람에게이 업데이트는 여전히 동일한 문제를 제공합니다.


2
안녕하세요 gl77-MSDN 계정에서이 문제를 해결하고 있습니다. 스레드를 업데이트했으며 더 많이 알게되면 업데이트하겠습니다.
Matt Small

이에 대한 해결책을 찾았습니까? 한 장치에서는 작동하지만 다른 장치에서는 작동하지 않는 비슷한 문제가 있습니다. 작동하는 장치는 Intel의 Bluetooth 드라이버 17.0.1401.422를 실행하고 작동하지 않는 장치는 Intel의 Bluetooth 드라이버 17.0.1405.460을 실행합니다.
Jon H

아직 해결책을 찾지 못했지만 Matt의 팀은 여전히 ​​문제를 해결 중입니다. 가까운 장래에 수정을 희망합시다.
ggg

2
하드웨어 제조업체는 17.0.1405.460 버전의 Intel Bluetooth 드라이버를 제거하고 이전 버전 인 17.0.1401.422 버전을 설치하는 과정을 안내했습니다. 일단 우리가 내 응용 프로그램이 다시 작동하기 시작했습니다. 그래서 저에게 문제는 새로운 드라이버였습니다.
Jon H

1
MSDN 게시물에 링크를 첨부 할 수 있습니까?
SILENT

답변:


1

나는 CoolTerm을 시도하고 그것이 당신을 위해 작동하는지 볼 것입니다. USB 연결을 통해 내부에 Sigma DSP 칩이있는 스피커를 연결하는 데 비슷한 문제가 있었기 때문에 외부 장치를 보는 데 문제가있는 경우 장치가 컴퓨터와 호환되지 않을 수 있습니다. CoolTerm을 다운로드하고 옵션으로 이동하고 직렬 포트 아래에서 포트를 원하는 연결 (블루투스, USB 등)로 변경해야합니다. 그런 다음 필요에 따라 옵션을 편집하고 기본 창으로 이동하여 연결을 누르고 작동하는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.