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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Severomor
2 / 2 / 0
Регистрация: 09.01.2014
Сообщений: 15
#1

LocationManager network_provider troubles - Программирование Android

31.01.2014, 20:10. Просмотров 1191. Ответов 2
Метки нет (Все метки)

Добрый день,
Написал сервис для считывания gps-координат. С GPS_PROVIDER проблем нет, все работает. Но если попытаться заменить на NETWORK_PROVIDER - он недоступен. И становится доступен только если в настройках телефона в настройках местоположения включить все галочки, включая Местоположение гугл. Но так ведь не должно быть? Например, яндекс-карты как то определяют местоположение при отключенном gps и местоположении от гугл! Может, кто сталкивался с подобной проблемой, что за ерунда? На всякий случай приведу код сервиса.
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
public class MyLocationTracker extends Service{
 
    private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1000;
    private static final long MINIMUM_TIME_BETWEEN_UPDATES = 60000;
 
    protected LocationManager locationManager;
    protected LocationListener listener;
 
    @Override
    public void onCreate(){
 
        super.onCreate();
        Toast.makeText(this, "Location Tracking Service started", Toast.LENGTH_LONG).show();
        listener=new MyLocationListener();
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
                MINIMUM_TIME_BETWEEN_UPDATES,
                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, listener);
        Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        if (location != null) {
            String message = String.format(
                    "Current Location \n Longitude: %1$s \n Latitude: %2$s",
                    location.getLongitude(), location.getLatitude());
            Toast.makeText(MyLocationTracker.this, message, Toast.LENGTH_LONG).show();
        }
        }
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    @Override
    public void onDestroy(){
        Toast.makeText(this, "Location Tracking Service stopped", Toast.LENGTH_LONG).show();
        locationManager.removeUpdates(listener);
        super.onDestroy();
    }
    private class MyLocationListener implements LocationListener{
 
        @Override
        public void onLocationChanged(Location location) {
            String message = String.format(
                    "New Location \n Longitude: %1$s \n Latitude: %2$s",
                    location.getLongitude(), location.getLatitude());
            Toast.makeText(MyLocationTracker.this, message, Toast.LENGTH_LONG).show();
 
        }
 
        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {
            Toast.makeText(MyLocationTracker.this, "Provider status changed", Toast.LENGTH_LONG).show();
 
        }
 
        @Override
        public void onProviderEnabled(String s) {
            Toast.makeText(MyLocationTracker.this,
                    "Provider enabled by the user. Tracking turned on", Toast.LENGTH_LONG).show();
 
        }
 
        @Override
        public void onProviderDisabled(String s) {
            Toast.makeText(MyLocationTracker.this,
                    "Provider disabled by the user. Tracking turned of", Toast.LENGTH_LONG).show();
 
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2014, 20:10     LocationManager network_provider troubles
Посмотрите здесь:

NETWORK_PROVIDER и Wifi - Программирование Android
Зачастую не может получить координаты по NETWORK_PROVIDER, но стоит включить Wifi и тут же ловит. Какая связь между Wifi и геолокацией по...

LocationManager - Программирование Android
Пытаюсь использовать методы от интерфейса сервиса LocationManager и AS подчеркивает ошибку при вызове метода getLastKnownLocation. ...

LocationManager - как работают параметры requestLocationUpdates? - Программирование Android
Привет, Никак не могу понять, как работают параметры MinTime и MinDistance. OnLocationChanged срабатывает, когда выполняются оба эти...

Русский язык в LocationManager - Программирование iOS
Как изменить заголовок и текст кнопок AlertView сообщение писал в plist NSLocationWhenInUseUsageDescription, а заголовок не знаю как...

linker troubles - C (СИ)
Привет всем. Поделитесь своими мыслями по следующему поводу: В проекте есть несколько сишников, к каждому свой заголовочный файл....

Gui troubles - JavaFX
Здраствуйте пытаюсь настроить размер кнопок для вида.Проблема в том , что настроить это не так просто , как я думал . Использовал все...

HSB project troubles - Delphi
Всем привет! Заранее выражаю благодарность всем, кто поможет! Теперь, собственно, проблема: нужно научиться преобразовывать...

C \Sun OS \ troubles with linker - C Linux
Есть простейший TCP\IP клиент-сервер. Два исходника + makefile. Проблема: при запуске make выдает следующую ошибку: Undefined symbol...

ViewModel Troubles in database request - C# MVC
Использую подход Code First с Entity Есть классы Post, Tag, TagMap public class Post { public int PostId { get;...

Troubles with mysql install on Centos 7 - MySQL
I tried to install Percona, MariaDB and mysql. Now I try to install mysql: yum -y install mysql mysql-server Log: Loaded plugins:...

NtQueryInformation, CreateFile - troubles при работе с символическими ссылками - C++ WinAPI
Всем привет! Я пишу низкоуровневую фунцкию для проверки существует ли файл по переданному пути с учетом регистра. Я использую...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
01.02.2014, 12:20     LocationManager network_provider troubles #2
Цитата Сообщение от Severomor Посмотреть сообщение
Например, яндекс-карты как то определяют местоположение при отключенном gps и местоположении от гугл!
Я считаю, что NETWORK_PROVIDER работает так: Телефон собирает данные о базовых станциях сотовой связи, сигнал которых сейчас принимается. Эти данные отсылаются на какой-то гугловский сервер на котором происходит вычисление ваших примерных координат. Очень похоже, что приложение от яндекса вовсе не использует NETWORK_PROVIDER, скорее всего у них свой собственный сервер который вычисляющий координаты. Ведь галочка "Местоположение гугл" в настройках запрещает использование именно NETWORK_PROVIDER'а но не запрещает вашему приложению собирать информацию о доступных базовых станциях и отсылать их куда-либо.
Алексей125
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 23
25.09.2015, 06:52     LocationManager network_provider troubles #3
Цитата Сообщение от Severomor Посмотреть сообщение
яндекс-карты как то определяют местоположение при отключенном gps и местоположении от гугл
Как раз столкнулся с этим. Описание логики работы сервиса яндекс локатор - http://habrahabr.ru/company/yandex/blog/162955/
Ответ Создать тему
Опции темы

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