Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 177
#1

Как проверить, включил ли пользователь GPS?

03.04.2015, 19:40. Просмотров 874. Ответов 3
Метки нет (Все метки)

При запуске приложения пользователю предлагается включить 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
    private void askForGpsLocation() {
        if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            alertDialog.setMessage("Share your location");
            alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                    startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 100);
                }
            });
            alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                    finish();
                }
            });
            alertDialog.show();
            onPause();
        }
    }
 
    @Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d("onActivityResult", "requestCode: " + requestCode + "resultCode: "+ resultCode + "data: " + data);
    }
Даже при включении пользователем GPS'a,onActivityResult выводит в консоль следующее:
requestCode: 100 resultCode: 0 data: null

Как узнать,что пользователь включил устройство?!
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 19:40
Ответы с готовыми решениями:

Как вернуть результат в активити включил юзер gps или нет?
Как вернуть результат в активити включил юзер gps или нет?

Как грамотно проверить что gps выключили
Приветствую. Получаю location так: location =...

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

Проверить включён ли GPS
Привет всем! Подскажите пожалуйста как проверить включён ли GPS или нет?...

Как записать данные GPS в файл?
Уже более суток сижу катаю дипломную работу. Суть такова, для начала мне нужно...

3
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 496
03.04.2015, 19:55 #2
А почему просто снова не проверить, что вернет locationManager.isProviderEnabled?
1
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 177
03.04.2015, 20:11  [ТС] #3
Slon747, спасибо!
Как раз реализовал Ваш совет)
Вот изменения:
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
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        alertDialog = new AlertDialog.Builder(this);
 
        alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 100);
            }
        });
        alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface paramDialogInterface, int paramInt) {
                finish();
            }
        });
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if(!isGpsEnabled()) {
            askForGpsLocation();
        }
    }
 
    //выводит диалоговое окно
    private void askForGpsLocation() {
        alertDialog.setMessage("Share your location"+(i++));
        alertDialog.show();
    }
 
    @Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
       //перепроверяем и выводим диалоговое окно еще раз
        if(!isGpsEnabled()) {
            askForGpsLocation();
        }
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("onResume", "start");
       //перепроверяем и выводим диалоговое окно еще раз
        if(!isGpsEnabled()) {
            askForGpsLocation();
        }
        Log.d("onResume", "end");
    }
 
 
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("onPause", "start");
        Log.d("onPause", "end");
    }
 
    //проверяем статус GPS
    private boolean isGpsEnabled() {
        return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    }
теперь одно и тоже диалоговое окно выводится дважды: 1 при onResume, а второе,по всей видимости,из onCreate.
Что не есть хорошо.
Как это исправить?Как приостановить выполнение приложения,при выводе диалогового окна?
Спасибо
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 496
03.04.2015, 23:24 #4
Не пойму зачем в onActivityResult снова вызывать диалог.
Мучать пользователя до тех пор, пока он не включит GPS?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2015, 23:24

GPS Location (GPS_PROVIDER) как получить координаты
Всем привет. Столкнулся с такой проблемой , может еще кто то сталкивался да...

Как включить GPS при запуске приложения?
Как включить GPS (ну если он отключен) при запуске приложения, без...

Как переделать new CameraPosition(new Point(0, 0), 10.0f, 0, 0) для GPS координат?
Добрый вечер, существует вопрос, как можно переделать new CameraPosition(new...


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

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

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