2015-01-12 3 views
4

Windows Phone 8.1 및 Android 폰에서 작동하는 장치가 있습니다. 이 휴대 전화 중 하나만 언제든지 기기를 사용할 수 있으므로 사용을 마자 즉시 기기에서 연결을 해제해야합니다.Windows Phone 8.1의 Bluetooth BLE 연결 및 연결 해제

안드로이드에서 우리가 사용하는 라이브러리는 연결과 연결 해제가 가능하지만 Windows Phone 8.1에서는 연결이 가능할 뿐이므로 전화에서 장치와의 연결을 끊을 수있는 방법을 찾을 수 없습니다. 기기에서 수동으로 전화를 페어링해야합니다.

페어링 된 블루투스 기기를 연결 해제 할 수있는 사람이 있습니까? 그렇다면 어떻게?

감사합니다.

+1

질문을 편집하여 BLE 장치에 연결하는 코드를 표시 할 수 있습니까? –

+1

이것이 가능한지 확실하지 않습니다. 안타깝게도 Windows BLE API는 극히 제한적이며 Android (또는 iOS라고 가정합니다. 필자는 Phone에서이 작업을 수행하지는 않았지만, 8.1 WinRT API는 AFAIK와 동일합니다. GattDevice 만 있으면됩니다. 닫을 수는 있지만 Windows는 연결 자체를 관리합니다. 모든 장치를 닫는 것은 실제 BLE 장치가 아니라 Windows 장치에서 자신의 프로세스를 분리하는 것입니다. –

+0

그게 내가 두려웠어요, 피터 ... : ( – Ravenheart

답변

0

StreamSocket을 통해 통신하는 경우 Dispose() 호출이 끊어집니다.

코드에 따라 using() 문이 가장 우아한 방법 일 수 있습니다.

+0

아니, 나는 GattDevice 항목을 사용하고 있습니다 : ( – Ravenheart

2

GattDeviceService에서 Dispose()를 호출하고 모든 GattCharacteristic 개체가 null인지 확인하고 GattCharacteristic에서 ValueChanged 이벤트 처리기를 등록 취소하지 마십시오. 마지막으로 GC.Collect()를 호출합니다. (Microsoft는 WP8.1의 버그이며 Win10에서 수정해야한다고 말했습니다.)

+0

Windows 10에서 지금은 작동 중입니다. 여전히 WP8.1에 대한 좋은 해결책은 없습니다 –

+0

당신은 어떤 참고 자료 그것에 대해? – gliderkite

+0

이것은 공식적인 해결책은 아니며, 몇 시간 동안 디버깅을 한 후에이 문제를 해결하기 위해 알아 낸 것입니다. –

0

이것은 win8 응용 프로그램에는 도움이되지 않지만 UWP 응용 프로그램에서 작업하는 모든 사용자에게 유용합니다 페어링 및 페어링을 위해 : https://msdn.microsoft.com/en-us/windows/uwp/devices-sensors/pair-devices

요점은 DeviceInformation.Pairing.UnpairAsync 메소드를 호출하는 것입니다. https://msdn.microsoft.com/library/windows/apps/windows.devices.enumeration.deviceinformationpairing.unpairasync

이 메서드를 호출하면 사용자에게 장치의 페어링을 해제 할 수있는 권한이 있는지 묻는 Windows 대화 상자가 표시됩니다.