Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
1

Не показывается AlertDialog

18.05.2013, 00:25. Просмотров 1097. Ответов 19
Метки нет (Все метки)

Хочу при запуске проверить есть ли на устройстве Сервисы Google Play
Кликните здесь для просмотра всего текста
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
public class MainActivity extends FragmentActivity {
          .....
 
         @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        
             if (checkPlayServices()) {                      // проверка на Сервисы  
                    myFragmentManager = getSupportFragmentManager();
                    mySupportMapFragment  = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
                    myMap = mySupportMapFragment.getMap();
                    myMap.setMyLocationEnabled(true); 
 
                    } else {                                            // если Сервисов нет 
                     showErrorDialog();                             // показываем диалог
                  }
         }
 
          private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status != ConnectionResult.SUCCESS)  {
 
            if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
                
             } 
            showErrorDialog();
          }
          return true;
        } 
 
        private void showErrorDialog() {         
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
         alertDialog.setCancelable(false);
         alertDialog.setTitle(getResources().getString(R.string.google_service_no));
         alertDialog.setMessage(getResources().getString(R.string.google_service_need));
         alertDialog.setIcon(android.R.drawable.ic_dialog_info);
         alertDialog.setPositiveButton("Google Play", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog,int which) {
                  final String appName = "com.google.android.gms";
                  try {
                      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+appName)));
                  } catch (android.content.ActivityNotFoundException anfe) {
                  }
              }
          });
         alertDialog.setNegativeButton(getResources().getString(R.string.exit), new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
           });  
          alertDialog.show();
        }
}


Если Сервисы в телефоне есть, всё работает, если их нет, приложение вылетает (на реальном устройстве). Логи показать не могу так как на эмуляторе Сервисов нет и приложение на эмуляторе крашиться в строке
Java
1
myMap.setMyLocationEnabled(true);

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:25
Ответы с готовыми решениями:

AlertDialog
ЗДравствуйте! Имеется простая игра. Когда ХП игрока == 0, я останавливаю...

Закрытие AlertDialog
Здравствуйте. Такой вопрос. Допустим я вызвал диалог и после этого перевел...

Spinner в AlertDialog
Как Spinner в AlertDialog сделать? AlertDialog вызываю через нажатие fab. ...

AlertDialog и RadioGroup
Всем привет. Создаю программу, в которой в открывшемся диалоговом окне...

Не работает AlertDialog
Почему в данном случае не работает AlertDialog? public class...

19
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:29 2
ну так логи с реального устройства и покажите...
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 00:31  [ТС] 3
А по делу глядя на код можете помочь?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:37 4
а у вас нет устройства?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 00:40  [ТС] 5
Есть. Я ж написал, что на реальном устройстве, если есть сервисы, работает всё как нужно, если их удалить, приложение вылетает

Добавлено через 59 секунд
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так логи с реального устройства и покажите...
А где их там взять?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:41 6
а где вы берете с эмулятора?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 00:44  [ТС] 7
В LogCat
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:46 8
ну вот точно там же и для устройства.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 00:51  [ТС] 9
Не понимаю где
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:53 10
В LogCat
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 00:55  [ТС] 11
Мне там указывает на строку
Java
1
myMap.setMyLocationEnabled(true);
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:57 12
вы же говорили что эмулятор там падает, а я про устройство спрашиваю...
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.05.2013, 01:06  [ТС] 13
Цитата Сообщение от V0v1k Посмотреть сообщение
а я про устройство спрашиваю...
Я не понимаю о чём вы. Лог для реального устройства из Эклипса?
Или лог реального устройства из устройства?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 01:13 14
Лог для реального устройства из Эклипса.

Добавлено через 6 минут
кстати, сервисы можно установить на эмулятор
adb install com.google.android.gms-19032013.apk
adb install com.android.vending-19032013.apk
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
19.05.2013, 00:37  [ТС] 15
Цитата Сообщение от V0v1k Посмотреть сообщение
Лог для реального устройства из Эклипса.
Он показывает на строку
Java
1
myMap.setMyLocationEnabled(true);
в ней null
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
19.05.2013, 01:25 16
http://developer.android.com/referen...l#getMap%28%29

Cкорее всего у тебя возникает NPE причины по ссылке выше.

Java
1
2
3
4
5
if (myMap == null) {
 // Google Play services is not available.
} else {
   myMap.setMyLocationEnabled(true); 
}
п.с. Способ определения какой-то странный
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
23.05.2013, 11:25  [ТС] 17
Цитата Сообщение от c4sp3r Посмотреть сообщение
п.с. Способ определения какой-то странный
Способ определения чего?
0
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
28.05.2013, 03:02 18
private boolean checkPlayServices
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
29.05.2013, 00:34  [ТС] 19
Цитата Сообщение от Gruzer Посмотреть сообщение
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
По логам падает из-за того, что myMap null
0
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
01.06.2013, 20:40 20
Диалог не тормозит функцию
после вызова диалога функция продолжает работать
вследствии чего и возрашается true

поетому и написал что функция постоянно возврашает true
есть или нету сервисов

можеш проверит
постав логи в функцию и посматри как они срабатывают и в какои очередности


вот самыи простои вариант

Java
1
2
3
4
5
6
7
8
9
10
 private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
           
            showErrorDialog();
            return false;
        }
Добавлено через 10 минут
showErrorDialog(); забыл убрать

Java
1
2
3
4
5
6
7
8
private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
            return false;
        }
0
01.06.2013, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 20:40

TextView а AlertDialog
Здравствуйте! Вот столкнулся с такой проблемой, не могу Textview вывести в...

Потоки и AlertDialog
Помогите, пожалуйста, бьюсь уже несколько дней. Создаю файловый менеджер. Это...

AlertDialog Error
Всем доброго времени суток! Изучал изготовление своего AlertDialog по учебнику...


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

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

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