Home » Android » android – Programmatically find device support GPS or not?

android – Programmatically find device support GPS or not?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I am trying to find some code which will help me to find out if the device which I use has GPS or not? I don’t want to know if GPS is enabled or disabled. I just want to know if the device has GPS hardware or not through my program.

How to&Answers:

Yes, this can be done.

You can call LocationManager.getAllProviders() and check whether LocationManager.GPS_PROVIDER is included in the list.

Just for reference, I believe all released Android phones come with a GPS. It’s not something that Android seem to be worrying about, e.g. mentioning GPS as one of the device attributes returned by PackageManager.getSystemAvailableFeatures().

Answer:

Those methods are easier to use:

private boolean hasGpsSensor(){
        PackageManager packMan = getPackageManager();
        return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
}
  • true: available (activated or not)
  • false: not available

So, in case of true, we can use

private boolean isGpsEnabled(){
        LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
  • true: enabled
  • false: disabled

With this two, you will know if GPS is available, activated or deactivated

Answer:

There’s also LocationManager.isProviderEnabled(String provider) method.