Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
#1

Проверка на достижение локации на карте - Программирование Android

04.10.2015, 23:51. Просмотров 213. Ответов 1
Метки нет (Все метки)

Хотелось бы динамически получать координаты и выводить их в виде тоста.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation);
        setUpMapIfNeeded();
        new GpsTask().execute();
    }
    public class GpsTask extends AsyncTask<String, Void, String> {
 
        @Override
        protected String doInBackground(String... params) {
            while(true){
                GPSTracker gps = new GPSTracker(getBaseContext());
                LatLng location = new LatLng(gps.getLatitude(), gps.getLongitude());
                Toast.makeText(getBaseContext(), location.toString(), Toast.LENGTH_LONG).show();
            return "";}
        }
    }
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
public class GPSTracker extends Service implements LocationListener {
 
    private final Context mContext;
    boolean isGPSEnabled = false;
    boolean isNetworkEnabled = false;
    boolean canGetLocation = false;
 
    Location location;
    double latitude;
    double longitude;
 
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;
    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1;
    protected LocationManager locationManager;
 
    public GPSTracker(Context context) {
        this.mContext = context;
        getLocation();
    }
 
    public Location getLocation() {
 
        try {
            locationManager = (LocationManager) mContext
                    .getSystemService(LOCATION_SERVICE);
 
            isGPSEnabled = locationManager
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
 
            isNetworkEnabled = locationManager
                    .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
 
            if (!isGPSEnabled && !isNetworkEnabled) {
            } else {
                this.canGetLocation = true;
                if (isNetworkEnabled) {
                    locationManager.requestLocationUpdates(
                            LocationManager.NETWORK_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("Network", "Network");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                            }
                        }
                    }
                }
            }
 
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return location;
    }
 
    public void stopUsingGPS(){
        if(locationManager != null){
            locationManager.removeUpdates(GPSTracker.this);
        }
    }
 
    public double getLatitude(){
        if(location != null){
            latitude = location.getLatitude();
        }
        return latitude;
    }
 
    public double getLongitude(){
        if(location != null){
            longitude = location.getLongitude();
        }
        return longitude;
    }
 
    public boolean canGetLocation() {
        return this.canGetLocation;
    }
 
    @Override
    public void onLocationChanged(Location location) {
    }
 
    @Override
    public void onProviderDisabled(String provider) {
    }
 
    @Override
    public void onProviderEnabled(String provider) {
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
 
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
 
}
Приложение крэшится. Посмотреть где крэшится не могу. В чём может быть дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2015, 23:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка на достижение локации на карте (Программирование Android):

Определить достижение конца экрана - Программирование Android
У меня есть GridView и в нем изображения как при скролинге определить когда будет достигнут конец экрана устройства и выполнить некоторые...

Центровка по текущей локации в GoogleMap - Программирование Android
А скажите, вот у меня есть код: @Override protected void onCreate(Bundle savedInstanceState) { ...

Проверка на достижение конца файла не рао - C++
ofstream f(&quot;tmp&quot;); ifstream idx(idxAdress); int index; idx.seekg(0, ios::end); ios::pos_type endPos = idx.tellg(); ...

Создание локации - XNA
Хочу создать изометрическую 2.5d игру (не знаю насколько корректно так её называть): карта 2d, персонажи 3d. Чтобы реализовать...

Достижение кроссбраузерности верстки - HTML, CSS
Хочу поднять тему достижения кроссбраузерности верстки. Все что я пока что верстал - исключительно для себя, т.е. для приобретения...

Получить x, y локации пикчербокса - Visual Basic .NET
Всем привет! У меня есть пикчер бокс с координатами 10,20 Как мне в переменную x занести 10, а в y 20?

1
YuraAAA
1578 / 1319 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
05.10.2015, 11:52 #2
sergey_viper, мне кажется, что у Вас в корне неверная архитектура. У Вас же есть onLocationChanged метод в сервисе. Из него надо пробрасывать через какой-нибудь observer-observble данные
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 11:52
Привет! Вот еще темы с ответами:

Изменение локации объекта в зависимости от размера формы - C#
Как изменить свойство объекта(button, picturebox и т. д.) - Location, в зависимости от изменения свойство формы - size?

Функция, определяющая достижение начала файла: есть ли такая? - C++
Собственно мне нужна функция, проверяющая достижение начала файла, типа feof только наоборот. Гуглил, ничего не нашел =(

DIR-300 при достижение 2.000 Г байт входящих начинает глючить - Wi-Fi
имеется такой аппарат, суть в том, что когда он настроен на автоматическое подключение к инету, и просто раздаёт по wifi его ... и по лан...

При достижение определенного значения оно вычиталось из ячейки и счет продолжался - MS Excel
Добрый вечер! Не могу найти выход из ситуации, надеюсь на вашу помощь. Б1=80 Есть столбец значений от -50 до бесконечности, каждый...


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

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

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