Форум программистов, компьютерный форум 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. Просмотров 1145. Ответов 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
Посмотрите здесь:

Delphi HSB project troubles
C \Sun OS \ troubles with linker C Linux
C (СИ) linker troubles
Gui troubles JavaFX
Android NETWORK_PROVIDER и Wifi
Android LocationManager - как работают параметры requestLocationUpdates?
C++ WinAPI NtQueryInformation, CreateFile - troubles при работе с символическими ссылками
Русский язык в LocationManager
ViewModel Troubles in database request C# MVC
Android LocationManager
MySQL Troubles with mysql install on Centos 7

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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/
Yandex
Объявления
25.09.2015, 06:52     LocationManager network_provider troubles
Ответ Создать тему
Опции темы

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