/ GPS координати на тестовия телефон за разработчици - Android, GPS, координати

GPS координати на тестовия телефон за разработчици - Android, GPS, координати

Моят код взема координатите на дадена позиция ведно време и след това да показвате координати Lat / Long. Мисля, че моят код е прав, но там, където проблемът е, е даването на разрешение от 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 и няколко други форуми и след това го оправих малко.

Отговори:

1 за отговор № 1
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.LOCATION"></uses-permission>

Добавете по-горе разрешения. Може би това ще ви помогне.


0 за отговор № 2

Трябва да поставите следното разрешение

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

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