Старый вопрос, но мне было проще использовать
private boolean hasGpsSensor(){
PackageManager packMan = getPackageManager();
return packMan.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
}
Это будет false, если недоступно, и true, если активировано или нет, поэтому я использовал это после
private boolean isGpsEnabled(){
LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
return manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
С этими двумя вы узнаете, доступен ли GPS, активирован или деактивирован