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

Получение своего местоположения на карте - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Использованеи materialdesign http://www.cyberforum.ru/android-dev/thread1309367.html
Решил оформление приложения обновить под lollipop, поменял в android studio buildToolsVersion "21.0.2" поставил compile "com.android.support:appcompat-v7:21.0.2" Однако при создании темы <style...
Программирование Android Потребление памяти программы Можно ли получить потребление памяти текущей программы? Если да, то как? http://www.cyberforum.ru/android-dev/thread1309324.html
Программирование Android Определить первый пустой элемент ArrayList
Есть ArrayList, там несколько элементов пустые, нужно определить самый первый, его индекс.
Программирование Android Не запускается эмулятор в Android Studio
Всех приветствую! Последние пару недель занимаюсь установкой и настройкой Android Studio. На данный момент студия вроде бы нормально генерит проект типа "Hello world!", но запускать его в...
Программирование Android Трудоемкость проекта http://www.cyberforum.ru/android-dev/thread1309202.html
Сколько программистов нужно и сколка время займет написания программы (Серверную часть клиенскую веб, под ключь) на подобии Скайпа только без видеосвязи? Спасибо за ответы если таковы будут.,
Программирование Android Касание в EditText Подскажите пожалуйста, как можно обработать касание в EditText. Нужно при касании менять цвет, но не знаю как правильно вызвать обработчик касания. подробнее

Показать сообщение отдельно
dajver
409 / 273 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
24.11.2014, 15:54
Создаем такой сервис в отдельном классе.
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
123
124
125
126
127
128
129
130
131
132
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
 
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;
    }
 
}
Как использовать. В нужном фрагменте или активности создаем объект и используем его функции получения координат.
Java
1
2
GPSTracker gps = new GPSTracker(this);
LatLng location = new LatLng(gps.getLatitude(), gps.getLongitude());
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru