Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 483
#1

GPS. Определение местонахождения

26.11.2013, 16:42. Просмотров 996. Ответов 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, но оно не возникает.
В чем может быть проблема?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 16:42
Ответы с готовыми решениями:

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

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

Убрать диалог о включении GPS и иконку GPS. Тихий запуск GPS
Здравствуйте! Подскажите есть ли возможность включить GPS в тихом режиме,...

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

Получение координат местонахождения
Здравствуйте. В приложении есть необходимость получать значение координат...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
26.11.2013, 20:03 #2
Цитата Сообщение от Slon747 Посмотреть сообщение
Но getLastKnownLocation в строке 23 возвращает null.
Если location не был определён до этого ниразу - вернёт null, всё верно.

Цитата Сообщение от Slon747 Посмотреть сообщение
В чем может быть проблема?
GPS включён? Это может занять достаточно долго. Попробуйте изменить
Java
1
LocationManager.GPS_PROVIDER
на
Java
1
 LocationManager.NETWORK_PROVIDER
В этом случае будет использоваться навигация по wifi и сотовой сети, что быстрее в разы.
1
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 483
26.11.2013, 22:46  [ТС] #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, то работает через сотовую связь?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
27.11.2013, 12:27 #4
Цитата Сообщение от Slon747 Посмотреть сообщение
Я правильно понял, что если нет wifi, то работает через сотовую связь?
Всё верно. Но сами посмотрите на точность (параметр accuracy вроде). Оно будет довольно большим (что есть не хорошо), т.е. разброс довольно высок (особенно для сотовых сетей). Можете сделать круче. Использовать Network provider до тех пор, пока не включится GPS provider.
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 483
27.11.2013, 17:05  [ТС] #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Всё верно. Но сами посмотрите на точность (параметр accuracy вроде). Оно будет довольно большим (что есть не хорошо), т.е. разброс довольно высок (особенно для сотовых сетей).
Действительно, разброс очень большой.

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

Но мне не дает покоя вопрос. С вышками сотовой связи все понятно. Но каким образов wifi влияет на геолокацию?
Может провайдер возвращает физический адрес?
0
27.11.2013, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2013, 17:05

Прослушка GPS
Добрый день Регистрирую прослушку на доступность GPS так: ...

GPS Tracker
Функционал: шлёт GPS координаты по UDP. Струкутра: Activity - запускает и...

Работа с gps
помогите пожалуйста! как получать скорость с помощью gps?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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