GPS-координаты на тестовом телефоне разработчика - PullRequest
2 голосов
/ 27 июля 2011

Мой код принимает координаты позиции в данный момент времени, а затем отображает координаты широты и долготы.Я думаю, что мой код правильный, но проблема в том, чтобы дать разрешение 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 и нескольких других форумов, а затем немного подправил его.

Ответы [ 2 ]

1 голос
/ 27 июля 2011
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.LOCATION"></uses-permission>

Добавьте вышеуказанные разрешения. Может быть, это поможет вам.

0 голосов
/ 27 июля 2011

Вам необходимо поставить следующее разрешение

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

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

...