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 de开发者_运维问答vice has GPS hardware or not through my program.
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()
.
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
: enabledfalse
: disabled
With this two, you will know if GPS is available, activated or deactivated
There's also LocationManager.isProviderEnabled(String provider) method.
精彩评论