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

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로 작업하는 것이 가능한 해결책입니다.

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



답변

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


답변