I solved it. The problem was that “Let Google apps access your location” was turned off:
When I turn it on I get GPS readings and when it’s off I don’t.
I had left it off for two reasons:
-
I’m developing an app to be used to lots of devices at a company and I want minimum manual configuration to be necessary
-
The screen says clearly “This setting affects Google apps only.” I know that Play Services is Google software but I didn’t think Google would expect an end user to understand that.
Then I got the Android 4.4.2 update and the location settings page has changed. It appears that I can have Google Location Reporting turned off and still get GPS readings from the fused location provider:
So maybe Google realised that the setting was confusing and improved it. Either way, I’d have saved a lot of time if I’d got 4.4.2 a few days ago.