This is an update that should address many of the crash reports received since the previous release went live. Issues were identified within the app lifecycle startup code that could cause a device to crash due to not requesting Location permission at the correct time.

As with all releases, if you experience problems with the app please send me a message with any information relating to what was happening at the time so I can try and improve the app.

Loading

This update fixes a crash in Window Mode, improves the screen layout slightly and removes the navigation bar for true full screen viewing. Unfortunately I’ve had to remove a feature too, so let’s address that first.

Background running removed

I’ve always wanted DigiHUD to be able to run in the background. For my own use it’s great I can start the app, reset the values and drop it in my pocket knowing that my walk will be recorded. It’s caused some confusion though, especially for people who don’t expect it to carry on running when they hit Home, but generally it’s been seen as a great feature.

Google have recently, and quite rightly, started to crack down on what apps can do with the device Location. Starting in Android 10 (P), apps that need to access the device Location in the background must specifically request permission and only to perform a function that the app relies upon for normal operation. In August this year all new Play Store apps will be reviewed by Google to ensure they have a very good reason to access Location in the background, and in November all existing apps will be reviewed. Any apps that can’t meet the new requirements will have to stop using background location or be removed from the Play Store.

Even if you can justify using it, Google are placing restrictions on the frequency that background location can be received, here’s a quote from their guidance (linked to below):

If background location access is essential for your app, keep in mind that Android preserves device battery life by setting background location limits on devices that run Android 8.0 (API level 26) and higher. On these versions of Android, if your app is running in the background, it can receive location updates only a few times each hour.

Google Developer documentation

For a speedometer app, this frequency of updates is as good as useless. The majority of DigiHUD users are using Android 8 or later. I’m not prepared to provide a feature that I know is not accurate as this would undermine confidence in the app and have a negative impact on it’s reputation, so this has unfortunately forced my hand and I’ve removed background running from the app. I’m very unhappy about having to make this change but have no other option.

Improved layout

There’s an improvement to the speed digit layout as I felt the speed wasn’t taking up as much space as it could (or deserved). The digits can now resize to fill the space available. There’s still more to do in the future with regards to layout.

Show two digits under 100

Driving as I do in the UK there aren’t many occasions when I need a speedometer that goes above 100 mph. Travelling in France it was fine as I was regularly driving above 100 kmh. So, for day to day driving it’s pointless the app showing me three speed digits, especially in portrait mode where the digits are small anyway. That’s why I’ve added a new setting “Always show three speed digits?“. It’s unchecked by default, but if you always want three speed digits then just check it.

DigiHUD free

True full screen view

The navigation bar will slide out of view after a second or two to give a true full screen view of the app (removing the annoying bright bar which is distracting in nighttime use. Tapping the screen will show the navigation bar again. Available on supported devices.

Loading

Please get in touch via the contact form if you experience any issues with this release.

This patch addresses an issue with Window Mode freezing or crashing on some versions of Android. The details of the last release are below.

Background running removed

I’ve always wanted DigiHUD to be able to run in the background. For my own use it’s great I can start the app, reset the values and drop it in my pocket knowing that my walk will be recorded. It’s caused some confusion though, especially for people who don’t expect it to carry on running when they hit Home, but generally it’s been seen as a great feature.

Google have recently, and quite rightly, started to crack down on what apps can do with the device Location. Starting in Android 10 (P), apps that need to access the device Location in the background must specifically request permission and only to perform a function that the app relies upon for normal operation. In August this year all new Play Store apps will be reviewed by Google to ensure they have a very good reason to access Location in the background, and in November all existing apps will be reviewed. Any apps that can’t meet the new requirements will have to stop using background location or be removed from the Play Store.

Even if you can justify using it, Google are placing restrictions on the frequency that background location can be received, here’s a quote from their guidance (linked to below):

If background location access is essential for your app, keep in mind that Android preserves device battery life by setting background location limits on devices that run Android 8.0 (API level 26) and higher. On these versions of Android, if your app is running in the background, it can receive location updates only a few times each hour.

Google Developer documentation

For a speedometer app, this frequency of updates is as good as useless. The majority of DigiHUD users are using Android 8 or later. I’m not prepared to provide a feature that I know is not accurate as this would undermine confidence in the app and have a negative impact on it’s reputation, so this has unfortunately forced my hand and I’ve removed background running from the app. I’m very unhappy about having to make this change but have no other option.

Start on power connected

A while back Google stopped apps from creating a ‘listener’ that would run in the background listening for certain system events, in the case of DigiHUD Pro it was the event that let the app know when the power cable was plugged in. That broke the ‘Start on power connected’ feature.

Previously, apps could start a ‘Listener’ Service which would survive reboots, and therefore the app itself didn’t need to be run for the Service to start.

I’ve had to create a workaround for this by starting a service when the app closes (if the Setting is checked). As per Google’s guidelines the service adds a Notification so you can see that it’s running. Tapping the notification will also open the app. The notification also has a ‘close’ option to kill the service.

Unfortunately this means that the app has to have been started manually and closed since a reboot for it to detect when the power cable is connected.

A fix for ‘Close on power disconnected’ has also been added.

Improved layout

There’s an improvement to the speed digit layout as I felt the speed wasn’t taking up as much space as it could (or deserved). The digits can now resize to fill the space available. There’s still more to do in the future with regards to layout.

Larger digits make better use of the screen area.

Show two digits under 100

Driving as I do in the UK there aren’t many occasions when I need a speedometer that goes above 100 mph. Travelling in France it was fine as I was regularly driving above 100 kmh. So, for day to day driving it’s pointless the app showing me three speed digits, especially in portrait mode where the digits are small anyway. That’s why I’ve added a new setting “Always show three speed digits?“. It’s unchecked by default, but if you always want three speed digits then just check it.

Speed precision to 1/10th enabled

Google Map View

Fixed:

  • Google map would redraw the map completely when the location updated causing the map to flash. it appears that this could also cause the app to crash on some devices
  • Blue line indicating the route (appears when the route is being recorded) would draw from the equator to the current location
  • Map not re-initialised after screen rotation events
  • Routes viewed in Google Earth showed broken way-point icons

Feature descriptions added

I’ve added brief descriptive text to some of the dialog boxes. It’s not always clear what these features do so hopefully this will help.

Bug fixes

  • Found and fixed a bug that could stop some of the recorded routes being displayed. This was happening when trying to get the address from lat/lon coordinates.
  • Ensure that the timer and elapsed time (used in the calculation of average speed) continue regardless of whether location updates are happening. This should improve accuracy of the average speed.
  • Window Mode crashing

Minimum Android version increased to 16

The minimum version of Android that the app will now run on is 16. Earlier versions of android will keep the previous applicable version.

Loading

DigiHUD Speedometer mobile app for Android accesses location data from the device GPS sensor for the purpose of displaying various speed and distance statistics on your device. Location data is stored on the device and is not transmitted to other devices or systems. This data is only accessible by the DigiHUD Speedometer app.

In order for the app to provide its core functions it requires your permission to access the device location.

When using the app’s Window Mode the app can continue to run when the screen is off or the app is not being used by means of a foreground Service. A persistent notification will be displayed when running in Window Mode to allow the app to be returned to focus. Window mode requires that the ‘Display over other apps’ Android setting is enabled on your device for DigiHUD Speedometer.

So an updated version of DigiHUD Pro was released the other day to fix a couple of bugs and add some new features (take a look in the Play Store listing for the details).

I also was required by Google to ensure my apps target Android 8.0 if updated from 1st November 2018:

 

It’s taken so long to get this update out because Google have made it increasingly difficult impossible to support the later versions of Android and use a third-party development environment, which in my case was Eclipse. I’ve nothing against using Google’s Android Studio it’s just that everything was setup perfectly and I was happy the way it was.

I resigned myself to the fact I had to switch and set about migrating. Oh if only it was a one-click job! Being new to Android Studio meant having to learn how everything worked whilst I re-created the apps in it. What a nightmare that was.

I digress. I realise now that a simple run-through of the app just wasn’t enough and that I hadn’t understood the gravity of moving to the later APIs. Some things that have worked since day one are now broken and I must either find a way to fix them, or remove them.

Here’s an example.. You can get the app to start when the device is connected to power, and you can get it to close the app when it disconnects. It was really simple to implement using system ‘Broadcasts’ (think “Hey everyone, the power got connected”), and “Receivers” (“The power was connected, I need to do XYZ”). This has now changed, I believe to reduce the amount of processing apps do while they are idle in the background or when not running at all. It helps reduce battery use which, of course, is a good thing.

Unfortunately these were two of the features I didn’t think to test on an Android 8 or 9 device.

Hopefully the next update will be out soon.

 

 

Loading

I had an email from Eric Lee over at Hudly to let me know that the team at Hudly are working on a sleek new wireless model and it’s up on Kickstarter now.

Go check it out here: https://www.kickstarter.com/projects/ericshun/hudly-wireless-focus-on-the-road

DigiHUD looks great on it’s large 6.2″ display.

Loading

I received an email today from Hudly again thanking me for being a backer but also to say that backer’s units have now shipped.

I’m not sure how long it will take for my unit to make it’s way from the USA to the UK, hopefully not too long as I’m dying to get it installed and see first hand how well it works. I’ll probably have to pay import duty on it however.

I’m super excited to get my hands on Hudly, however I’m not sure yet if my Android LG G5 will be compatible with it as it uses MHL to connect Android devices. I’m sure I’ll be able to use my Galaxy SIII.

I’ll add a write-up on the unit to this blog after putting it through it’s paces.

 

Fancy getting Hudly?

You can get $50 off a Hudly until 17 May 2017 by using this link

 

Loading

As anyone who has tried to use DigiHUD’s HUD mode in the day will confirm, it’s not really usable because it get’s washed out to the point where it becomes invisible. Add to this the slight double image caused by the laminated glass and it’s a non-starter.

In order to work well in the day, commercially available HUD units have particularly bright displays (generally brighter than smartphone or tablet screens) and also a piece of slightly reflective film which is stuck to the inside of the windscreen. The film removes the double image and also allows the display to be seen in bright light.

Recently I picked up a piece of film from that popular Internet auction site to see if it improves DigiHUD’s HUD experience.

Here it is in the day.
20160826_194750_hdr

I’ve attached it up high on the screen because the rake of the glass would mean the film was a bit too much in my line of sight for comfort. I will at some point 3D-Print a holder for my phone to sit on the dashboard.

So for a few pounds it makes a world of difference to using HUD mode in the day.

Loading