Мой код принимает координаты позиции в данный момент времени, а затем отображает координаты широты и долготы.Я думаю, что мой код правильный, но проблема в том, чтобы дать разрешение GPS на телефон.Я использую Samsung Nexus S, и у меня установлены все необходимые драйверы, но в телефоне нет сети.Мне сказали, что GPS все еще должен работать и должен быть в состоянии получить координаты.У меня включен параметр «Использовать спутники GPS», и я дал разрешение в манифесте, как показано здесь в 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>
Я выдал все возможные разрешения для местоположения на всякий случайупустить что-то, надеюсь, это не проблема.
Что касается моего кода, у меня это есть в методе onCreate (класс? Я не уверен в его правильном названии)
double[] gps = getGPS();
TextView tv = (TextView) this.findViewById(R.id.gpsCoordinates);
tv.setText("Latitude: " + gps[0] + "\nLongitude: " + gps[1]);
И затем частный метод в классе GPS дляполучить координаты
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;
Я полагаю, что я извлек этот код из stackoverflow и нескольких других форумов, а затем немного подправил его.