When I created the InTheHand.BluetoothLE library I modeled the API on WebBluetooth as this gave a simple API surface but as it was designed to run within a browser sandbox some of the functionality is intentionally limited. For device discovery the API only provides a selection dialog. One of the most requested features early-on was […]
Tag: Bluetooth
I’ve been asked a number of times about the process to ask for Bluetooth permission for your app. I’ve been meaning to create something reusable for some time but it has languished on the To Do list for rather too long. I recently noticed that as of .NET 8.0, MAUI will incorporate a Bluetooth permission […]
Sometimes it takes a while to realise that an API is lying to you. When implementing Bluetooth Classic support for Linux on .NET 6.0 and above I came to this realisation after going directly to the native API. System.Net.Sockets has been available since the beginning of .NET. Traditionally this was a wrapper over the WinSock […]
This week I’m launching a new app into the Microsoft Store. Following on from my experiences with enabling hands-free calling in Windows 10/11 for devices not supported by Microsoft’s own Phone Link app, I’ve been exploring this area further. I’d been interested in how the hands-free audio integrates into Windows and discovered how to utilise […]
I often get asked about the different ways of using Bluetooth Classic and Bluetooth Low Energy with 32feet.NET. This post looks at the two different approaches and a bit of historical context. Separate Libraries The first key point here is that Bluetooth Classic and LE are handled by two different NuGet packages. 32feet.NET originated as […]
12 Days of Bluetooth – #12 Summary
Bluetooth is Big, Really Big Looking back over the different functionality I’ve covered in these past few posts has highlighted that Bluetooth is used for a wide range of scenarios, and it has grown massively from its simple beginnings. It is fair to say that looking at the evolution of each specification version that more […]
When we last looked at Bluetooth Low Energy we looked at the code required to read the battery level from a device. There are two things we didn’t cover – writing values and sending commands to a device. Writing in the Air If you’re familiar with the service that you are writing to the process […]
12 Days of Bluetooth – #10 Hands-Free
Bluetooth Classic contains a handful of profiles which use AT commands to work with telephony devices over an RFComm connection. We discussed these briefly in #3 of this series and today will look in more detail and the most commonly implemented one – Hands Free Profile. Look No Hands! Two similar profiles exist in Headset […]
12 Days of Bluetooth – #9 Pairing
Both Classic and Low Energy devices can provide functionality to unpaired devices or require pairing first before exchanging sensitive information. However, what exactly is pairing? Stick a Pin in it The original mechanism for pairing uses a four digit PIN code. One device would need to be discoverable, and the other device upon discovering it […]
Following on from the last post, which covered the technology of Bluetooth Low Energy, this post will look at how to use it from code using InTheHand.BluetoothLE. We’re going to look at an example using a simple but widely used service – Battery Service. You can probably guess what it is used for. Step One […]
