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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.78
nikooolay
8 / 8 / 0
Регистрация: 20.11.2009
Сообщений: 410
#1

Получение координат gps из своего класса (getLastKnownLocation) - Программирование Android

23.01.2013, 19:45. Просмотров 3694. Ответов 11
Метки нет (Все метки)

Один из методов класса содержит
Java
1
2
3
Location location;
        LocationManager lm = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);
        location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Про Context.getSystemService(Context.LOCATION_SERVICE);
компилятор заявляет Cannot make a static reference to the non-static method getSystemService(String) from the type Context.

Добавлено через 7 минут
При таком способе
Java
1
2
3
4
5
LocationManager locationManager;
       String context = Context.LOCATION_SERVICE;
       locationManager = (LocationManager)getSystemService(context);
       String provider = LocationManager.GPS_PROVIDER;
       Location location = locationManager.getLastKnownLocation(provider);
возникает ошибка The method getSystemService(String) is undefined for the type GpsClass
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 19:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение координат gps из своего класса (getLastKnownLocation) (Программирование Android):

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

Смещение координат GPS/NetWork - Программирование Android
Всем известная проблема - смещение координат, полученных через GPS/NetWork, на гугл/яндекс картах. Примерное расстояние смещения:...

Где почитать об определении GPS координат - Программирование Android
Посоветуйте, какую-нибудь статью грамотную почитать и/или пример по определению GPS-координат?

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

Считывание GPS координат (долготы и широты) и запись в файл - Программирование Android
Добрый день, у меня возникли трудности с считыванием координат с GPS датчика и через Network и записи всего этого в файл по тику таймера....

Простое получение GPS данных - Программирование Android
Нужно простой код для получения GPS данных. Без всяких проверок на: наличие связи со спутниками, на включённость GPS модуля, и.т.д и.т.п.....

11
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
23.01.2013, 20:52 #2
getSystemService это не статический метод класса Context.
0
nikooolay
8 / 8 / 0
Регистрация: 20.11.2009
Сообщений: 410
24.01.2013, 17:14  [ТС] #3
Допустим, но это не снимает вопроса как получить координаты в классе?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.01.2013, 19:38 #4
Java
1
2
3
        Location location;
        LocationManager lm = (LocationManager) сontext.getSystemService(Context.LOCATION_SERVICE);
        location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
0
nikooolay
8 / 8 / 0
Регистрация: 20.11.2009
Сообщений: 410
24.01.2013, 22:32  [ТС] #5
Не помогло
Полностью класс
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
public class GpsClass implements LocationListener {
    double Latitude=0, Longitude=0;
    //gps_servis gps_notif = new gps_servis();
    GpsClass() {}
     Location location;
     public void getloc (Context сontext){
     LocationManager lm = (LocationManager) сontext.getSystemService(Context.LOCATION_SERVICE);
     location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
     Latitude=location.getLatitude();}
    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        Log.d("id", "Координаты изменены");
    }
 
    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
        Log.d("id", "Модуль отключен");
    }
 
    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
        Log.d("id", "Модуль включен");
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
        Log.d("id", "Статус модуля изменен");
    }
}
Вызов из Activity
Java
1
2
3
4
5
6
public void givegps(View v) {
     mygps.getloc(getApplicationContext());
        Toast.makeText(getApplicationContext(), String.valueOf(mygps.Longitude),
                Toast.LENGTH_SHORT).show();
            
    }
Полный лог
FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:2191)
at android.view.View.performClick(View.java:2532)
at android.view.View$PerformClick.run(View.java:9293)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4277)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at android.view.View$1.onClick(View.java:2186)
... 11 more
Caused by: java.lang.NullPointerException
at com.example.gps_marker.GpsClass.getloc(GpsClass.java:18)
at com.example.gps_marker.MainActivity.givegps(MainActivity.java:39)
... 14 more
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.01.2013, 23:48 #6
Цитата Сообщение от nikooolay Посмотреть сообщение
Полностью класс
а где пакет, импорты?
0
nikooolay
8 / 8 / 0
Регистрация: 20.11.2009
Сообщений: 410
25.01.2013, 17:17  [ТС] #7
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
package com.example.gps_marker;
 
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
 
public class GpsClass implements LocationListener {
    double Latitude=0, Longitude=0;
    //gps_servis gps_notif = new gps_servis();
    GpsClass() {}
     Location location;
     public void getloc (Context сontext){
     LocationManager lm = (LocationManager) сontext.getSystemService(Context.LOCATION_SERVICE);
     location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
     Latitude=location.getLatitude();}
    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
        Log.d("id", "Координаты изменены");
    }
 
    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub
        Log.d("id", "Модуль отключен");
    }
 
    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub
        Log.d("id", "Модуль включен");
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
        Log.d("id", "Статус модуля изменен");
    }
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.01.2013, 18:00 #8
ну видимо getLastKnownLocation возвращает вам null, подебагайте.
0
nikooolay
8 / 8 / 0
Регистрация: 20.11.2009
Сообщений: 410
25.01.2013, 18:10  [ТС] #9
Возвращает, обнаружил вчера. Забил дописать.
Хотя сам девайс координаты получает, проверено и на реальном девайсе и на эмуляторе.
0
Jerico88
0 / 0 / 0
Регистрация: 12.08.2013
Сообщений: 1
15.08.2013, 14:25 #10
что в итоге?заработало?у меня другая беда - без объяснения причин не хочет брать координаты.



08-15 10:09:09.423: W/dalvikvm(1853): threadid=1: thread exiting with uncaught exception (group=0x2bc9a300)
08-15 10:09:09.443: E/AndroidRuntime(1853): FATAL EXCEPTION: main
08-15 10:09:09.443: E/AndroidRuntime(1853): java.lang.NullPointerException
------------------->>>>>>>>>>>
08-15 10:09:09.443: E/AndroidRuntime(1853): at yura.kozin.post.MainActivity.getloc(MainActivity.java:101)<<<<<<<<<<--
<<<<<<<<<<-------------------
08-15 10:09:09.443: E/AndroidRuntime(1853): at yura.kozin.post.MainActivity$2.onClick(MainActivity.java:93)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.view.View.performClick(View.java:4084)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.view.View$PerformClick.run(View.java:16966)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.os.Handler.handleCallback(Handler.java:615)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.os.Handler.dispatchMessage(Handler.java:92)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.os.Looper.loop(Looper.java:137)
08-15 10:09:09.443: E/AndroidRuntime(1853): at android.app.ActivityThread.main(ActivityThread.java:4745)
08-15 10:09:09.443: E/AndroidRuntime(1853): at java.lang.reflect.Method.invokeNative(Native Method)
08-15 10:09:09.443: E/AndroidRuntime(1853): at java.lang.reflect.Method.invoke(Method.java:511)
08-15 10:09:09.443: E/AndroidRuntime(1853): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-15 10:09:09.443: E/AndroidRuntime(1853): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-15 10:09:09.443: E/AndroidRuntime(1853): at dalvik.system.NativeStart.main(Native Method)
0
dr_yand
156 / 138 / 6
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
15.08.2013, 14:31 #11
почему без объяснения причин?
Цитата Сообщение от Jerico88 Посмотреть сообщение
08-15 10:09:09.443: E/AndroidRuntime(1853): java.lang.NullPointerException
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
15.08.2013, 14:51 #12
Цитата Сообщение от Jerico88 Посмотреть сообщение
что в итоге?заработало?у меня другая беда - без объяснения причин не хочет брать координаты.
Для GPS требуется "время" чтобы взять точные координаты. Попробуйте
Java
1
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
0
15.08.2013, 14:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 14:51
Привет! Вот еще темы с ответами:

Получение своего номера - Программирование Android
Добрый день. Почему не выводится номер телефона вроде код правильно написать. Manifest &lt;uses-permission...

Получение своего местоположения на карте - Программирование Android
Здравствуйте. Есть небольшая проблема с получением своего местоположения на карте. Никак не могу понять, как это сделать. Что пробовал: ...

Получение координат по адресу - Программирование Android
Всем привет, наткнулся на такую реализацию. public LatLng getLocationFromAddress(String strAddress) { Geocoder coder = new...

Получение координат нажатия - Программирование Android
У меня проблема - я только начал разрабатывать под android и одна из первых трудностей - как обработать нажатие (считать координаты, силу...


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

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

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