Open axa88 opened 1 month ago
Hi @axa88,
I'm the friendly issue checker. Thanks for using the issue template :star2: I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.
Hmm I see this issue has some history perhaps #788
Hmm I see this issue has some history perhaps #788
Yes I agree #788 is the same... It is quite annoying Windows API doesn't have a disconnect method. In my desktop app I actually turn on / off the Bluotooth - and that works as a workaround. Turning Bluetooth off disconnects :-)
I can give it yet another shot before next release.
@AskBojesen I can imagine how a lack of Disconnect functionality could be problematic here... that seems fundamentally flawed.
During initial observations of this issue, I note a that after DisconnectDeviceAsync
failure, IDevice.NativeDevice
is then null and thus unusable.
My current workaround is basically appending DisconnectDeviceAsync
with WaitAsync
which takes a CancellationToken
. Then ignoring any IDevice
that is found having NativeDevice = null
, but this is be brittle.
Unfortunately as a symptom this now unusable device is left in the library cache if you will, and nothing, not even toggling Bluetooth on/off, will remove it. It cant be reacquired/replaced and the result is a catastrophic state.
Hopefully you find a solution.
Perhaps that includes overloading DisconnectDeviceAsync
to take a CancellationToken
and return Task<bool>
: success or not
@AskBojesen
In my desktop app I actually turn on / off the Bluotooth - and that works as a workaround. Turning Bluetooth off disconnects :-)
This doesn't work for me, might you be able to provide any other info/advice to recover from this state?
If you hadn't found these references already: This SO post looks informative. There's also this post
Call to
DisconnectDeviceAsync
may never complete. The call doesn't take aCancelationToken
, perhaps it should.It might take several Connect/Disconnect cycles, but eventually
DisconnectDeviceAsync
will hang.Hadn't noticed this behavior in v3.0.0, nor on
Android
Steps to reproduce
Connect/Disconnect
Observe eventually a call to
DisconnectDeviceAsync
will not completeExpected behavior
the call completes
Actual behavior
it doesn't complete
Crashlog
none
Configuration
Version of the Plugin: 3.1 rc1
Platform:
Device: