Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use PhoneGap to Check if GPS is enabled

Tags:

I am building an app using PhoneGap. While using the Geolocation API of phonegap I realized that the APIs time out for two reasons and the same error is thrown: 1. If GPS is not enabled on the user's device 2. If GPS is enabled and is not able to get the location of the user (could be several reason, faulty GPS, unclear weather and so on)

I am having an issue in differentiating the cause? Any thoughts on how to do it?

I was wondering if there is any way, I can check if GPS is active on user's device using Phonegap, so that i can do that as a separate check and direct user to the settings window where typically GEO settings are placed. Not sure how to do that? a custom phonegap plugin may be?

like image 296
Anoop Halgeri Avatar asked Oct 22 '12 07:10

Anoop Halgeri


1 Answers

You could check the error code in PositionError parameter of geolocationError in your call to getCurrentPosition. I am guessing that it will be PositionError.PERMISSION_DENIED when gps is not enabled, and PositionError.POSITION_UNAVAILABLE or PositionError.TIMEOUT when gps is enabled but there are other issues.

Note that this is platform dependent. You would probably have to write a contrived error message that says "Could not get the current position. Either GPS signals are weak or GPS has been switched off".

One thing you can try is to call getCurrentPosition with an incredibly small timeout, say 1 ms. If it says permission denied, you can conclude that gps is disabled and if it times out, you can assume that gps is enabled. I do not have time to test this, you could probably edit this answer with result of your tests.

Another thing you can try is to use the diagnostic phonegap plugin for android. You will have to make sure you use the plugins for the other platforms also, but they are all also mostly there.

like image 145
Kinjal Dixit Avatar answered Sep 20 '22 18:09

Kinjal Dixit