Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
#1

GPS. Определение местонахождения - Программирование Android

26.11.2013, 16:42. Просмотров 859. Ответов 4
Метки нет (Все метки)

Пытаюсь получить текущее местонахождение.
На устройстве включил GPS.
В манифесте прописл:
XML
1
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class MyActivity extends Activity {
 
    private LocationManager myLocationManager;
    private LocationListener myLocationListener;
    private TextView myLatitude, myLongitude;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.main);
 
        myLatitude = (TextView) findViewById(R.id.Latitude);
        myLongitude = (TextView) findViewById(R.id.Longitude);
 
        myLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        myLocationListener = new MyLocationListener();
 
        myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, myLocationListener);
 
        //Get the current location in start-up
        Location location = myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        myLatitude.setText(String.valueOf(location.getLatitude()));
 
    }
 
    private class MyLocationListener implements LocationListener {
 
        @Override
        public void onLocationChanged(Location argLocation) {
            myLatitude.setText(String.valueOf(argLocation.getLatitude()));
            myLongitude.setText(String.valueOf(argLocation.getLongitude()));
        }
 
        public void onProviderDisabled(String provider) {
        }
 
        public void onProviderEnabled(String provider) {
        }
 
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    }
}
Но getLastKnownLocation в строке 23 возвращает null.
Пробовал убрать строки 23 и 24 и ждать возникновение события onLocationChanged, но оно не возникает.
В чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 16:42     GPS. Определение местонахождения
Посмотрите здесь:

Список городов и определение местонахождения по координатам - Программирование Android
Всем доброго времени суток! Подскажите, где можно найти акутуальный на текущий день, обновляемый список городов России и стран СНГ и как...

Определение местонахождения (название населенного пункта) - Программирование Android
Всем привет. Мне надо реалозовать местонахождение планшета на карте, только мне надо получить не координаты, и название населенного пункта....

Не определение GPS координат - Программирование Android
ОФФТОП: В первоначальной версии все работу наладить удалось, но захотелось структурировать код. Сейчас задача вернуть все в...

GPS_PROVIDER и доступность GPS - Программирование Android
Имеется такой код запуска слушателей для провайдеров GPS_PROVIDER и NETWORK_PROVIDER: locationManager = (LocationManager)...

GPS + растровая карта - Программирование Android
Добрый день Как привязать gps координаты к растровой карте? Карту сделал банально скриншотом из карт Гугл. Я так думаю надо сделать...

Проверить включён ли GPS - Программирование Android
Привет всем! Подскажите пожалуйста как проверить включён ли GPS или нет? Желательно примером - буду благодарен!

GPS. Слушатель LocationListener - Программирование Android
Изменения текущего местоположения сохраняю в файл, сохраняя время и координаты. Потом просматриваю его и выясняется, что записи...

GPS - Изменение местоположения - Программирование Android
Здравствуйте ув. Программисты. Как можно реализовать следующее: -Есть программа при запуске определяет местоположение и...

Подделать GPS координаты - Программирование Android
Только начал собирать инструкции по работе с GPS и возник вопрос по &quot;отладке&quot; программы. Теоретически программа должна отслеживать трек и...

Координаты gps (структура) - Программирование Android
создал в разделе про телефоны, может если есть лучший- не знаю. не нашел. вопрос такой: gps координаты видны в виде -широта долгота...

Получить координаты GPS - Программирование Android
Привет. На андройде не проходит строчку locationManager = (LocationManager)activity.getSystemService(LOCATION_SERVICE); Вызывается...

Поворот изображения (GPS) - Программирование Android
Добрый день Пытаюсь сделать вот что, на canvas рисую изображение относительно своих координат, которые беру с GPS. Хотелось бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.11.2013, 20:03     GPS. Определение местонахождения #2
Цитата Сообщение от Slon747 Посмотреть сообщение
Но getLastKnownLocation в строке 23 возвращает null.
Если location не был определён до этого ниразу - вернёт null, всё верно.

Цитата Сообщение от Slon747 Посмотреть сообщение
В чем может быть проблема?
GPS включён? Это может занять достаточно долго. Попробуйте изменить
Java
1
LocationManager.GPS_PROVIDER
на
Java
1
 LocationManager.NETWORK_PROVIDER
В этом случае будет использоваться навигация по wifi и сотовой сети, что быстрее в разы.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
26.11.2013, 22:46  [ТС]     GPS. Определение местонахождения #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
GPS включён? Это может занять достаточно долго. Попробуйте изменить
Java
1
LocationManager.GPS_PROVIDER
на
Java
1
 LocationManager.NETWORK_PROVIDER
В этом случае будет использоваться навигация по wifi и сотовой сети, что быстрее в разы.
Включал и GPS и WiFi, ходил вокруг офиса , ничего не происходило.
Но после того, как изменил GPS_PROVIDER на NETWORK_PROVIDER тут-же сработало событие!
Спасибо!

Добавлено через 47 минут
Почитал про NETWORK_PROVIDER.
This provider determines location based on availability of cell tower and WiFi access points. Results are retrieved by means of a network lookup.
Я правильно понял, что если нет wifi, то работает через сотовую связь?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.11.2013, 12:27     GPS. Определение местонахождения #4
Цитата Сообщение от Slon747 Посмотреть сообщение
Я правильно понял, что если нет wifi, то работает через сотовую связь?
Всё верно. Но сами посмотрите на точность (параметр accuracy вроде). Оно будет довольно большим (что есть не хорошо), т.е. разброс довольно высок (особенно для сотовых сетей). Можете сделать круче. Использовать Network provider до тех пор, пока не включится GPS provider.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
27.11.2013, 17:05  [ТС]     GPS. Определение местонахождения #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Всё верно. Но сами посмотрите на точность (параметр accuracy вроде). Оно будет довольно большим (что есть не хорошо), т.е. разброс довольно высок (особенно для сотовых сетей).
Действительно, разброс очень большой.

Цитата Сообщение от YuraAAA Посмотреть сообщение
Можете сделать круче. Использовать Network provider до тех пор, пока не включится GPS provider.
Спасибо. Попробую так.

Но мне не дает покоя вопрос. С вышками сотовой связи все понятно. Но каким образов wifi влияет на геолокацию?
Может провайдер возвращает физический адрес?
Yandex
Объявления
27.11.2013, 17:05     GPS. Определение местонахождения
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru