/ / GPS Coordinates en Test Developer Phone - android, gps, coordenadas

Coordenadas GPS en el teléfono del desarrollador de prueba: Android, GPS, coordenadas

Mi código está tomando coordenadas de una posición enuna vez, y luego muestra las coordenadas Lat / Long. Creo que mi código es correcto, pero el problema radica en dar permiso de GPS al teléfono. Estoy usando un Samsung Nexus S y tengo todos los controladores adecuados instalados, pero no hay red en el teléfono. Me dijeron que el GPS aún debería funcionar y debería poder recuperar las coordenadas. Tengo habilitada la opción "Usar satélites GPS" y he otorgado el permiso en el manifiesto, como se ve aquí en el archivo manifest.xml

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>

Incluí todos los permisos de ubicación posibles en caso de que me faltara algo, con suerte eso no es un problema.

En cuanto a mi código, tengo esto en el método onCreate (¿clase? No estoy seguro de su nombre)

    double[] gps = getGPS();
TextView tv = (TextView) this.findViewById(R.id.gpsCoordinates);
tv.setText("Latitude: " + gps[0] + "nLongitude: " + gps[1]);

Y luego un método privado en la clase de GPS para obtener las coordenadas

    private double[] getGPS() {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> providers = lm.getProviders(true);

/* Loop over the array backwards, and if you get an accurate location, then break out the loop*/
Location l = null;

for (int i=providers.size()-1; i>=0; i--) {
l = lm.getLastKnownLocation(providers.get(i));
if (l != null) break;
}

double[] gps = new double[2];
if (l != null) {
gps[0] = l.getLatitude();
gps[1] = l.getLongitude();
}
return gps;

Creo que saqué este código de stackoverflow y algunos otros foros y luego lo modifiqué un poco.

Respuestas

1 para la respuesta № 1
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.LOCATION"></uses-permission>

Agregue los permisos anteriores. Quizás esto lo ayude.


0 para la respuesta № 2

Necesitas poner el siguiente permiso

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

Árbitro: http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION