Tag: Windows Store

  • Introducing Thy Voice

    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 it to deliver audio to the remote phone. After reading about the Live Speech feature coming in iOS 17, I thought it would be interesting to bring this functionality to Windows. The resulting app, Thy Voice, allows you to participate in a voice call from your PC and use text to talk when you might not be able to use your own voice. There are many reasons why a user might not be able to use their voice, either temporarily or permanently and it seemed to me that if available on the PC it would be easier to converse via text than using the iPhone soft-keyboard. These types of tool are known as Augmentative and Alternative Communication (AAC).

    The user interface is WinUI 3.0 and designed to match the modern look of Windows 11, rather like the messaging feature in Phone Link or a Teams chat. As well as supporting live text entry you can create a collection of reusable phrases to speed up entry. Some examples are pre-loaded in the beginning based on some existing common messages for AAC users.

    Since only one app can be registered to use a specific hands-free device, I didn’t want to reinvent the wheel and break existing Phone Link features so Thy Voice sits alongside your existing phone software (Phone Link or Thy Phone) and can detect when a call is active. You make and receive calls through your existing app, you can decide whether to use Thy Voice to conduct the call via text.

    There are many possible enhancements, such as supporting other languages and allowing the voice to be set separately from the default Windows settings. I decided it was better to get the basic application launched and then grow it based on feedback. Talking of which, I’d be very interested in any feedback on the app, whether or not you are an existing AAC user. It’s always good to understand different perspectives and use-cases.

    Get it from Microsoft logo button
  • Moving Forwards: Geolocation

    Recently I open-sourced a number of Compact Framework projects and when I was working on re-writing an application which used them as a Windows Runtime app I started to think about how much of the code might be useful for app projects. Obviously the API surface for Windows Runtime is totally different to the .NET Compact Framework. In some cases functionality which I wrote is built into the runtime, in other cases I’d made use of P/Invoke to call native APIs which is not an option. However one thing I noticed was that the Windows.Devices.Geolocation namespace which supersedes System.Device.Location was missing one key feature – a built in method to determine the distance between two points. Since I had code for this which was using the same method as the .NET framework I thought this was a prime candidate for migration.

    The Windows Runtime is a rather more complex API and whereas .NET had a single GeoCoordinate type the runtime has BasicGeoposition (containing raw latitude, longitude etc) and a number of other types – Geocoodinate, Geocircle, Geopoint etc I decided to first implement an extension method which would work with two BasicGeopositions and then as a helper added an extension method for Geocoordinate which used the logic from the first.

    The methods now live in a new NuGet package currently supporting Windows 8.1 and Windows Phone 8.1 – Charming Geolocation and the code will be available in the Charming project. Just add:-

    using InTheHand.Devices.Geolocation;

    and you can use the GetDistanceTo methods.

    Part of the project using this code required an iOS implementation too for which I’ve used Xamarin. Anyone who has used this will know that while the location functionality is similar to what we are familiar with on Windows the API is significantly different. Because I wanted to fix that just the once too I wrote a wrapper API to expose the Windows API wrapping all the CoreLocation stuff. I’ll be adding this library to the NuGet package shortly and am also in the process of moving all the Charming code from CodePlex to GitHub too.

  • Calendar Import Now Universal

    In order to extend the app onto Windows devices I’ve re-written the Calendar Import app as a Universal app with separate UI and features for Windows 8.1 and Windows Phone 8.1. Both apps add the new feature of browsing for files to import from directly within the app itself. This is on top of the existing filetype support which means you can import an item directly from your Email attachments, Web Browser, NFC, Bluetooth etc

    Switching to a Windows Phone 8.1 project also means there are other new features we can support in upcoming releases. Users with a Windows Phone 8.0 device will continue to receive the 1.8 version until their device is updated to 8.1.

    WindowsStore_badge_en_English_Black_small_154x40