Android and iphone both have a stand still filter enabled, which as you described, leads to the situation that you don't get a location update when standing still.
I would just ignore that, and use the Location.accuracy value for each new location received. If that values exceeds 30m then it is bad GPS.
While standing you could decide to do nothing.
Theoretically there is a solution for your task, but with drawbacks:
When you don't get a new location for some time, you can disable and reenable Location Service every 5 seconds. Then in case of good GPS you get a new coordinate, or none if there is no GPS signal available.