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

Не показывается AlertDialog - Программирование Android

18.05.2013, 00:25. Просмотров 1076. Ответов 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);

http://www.cyberforum.ru/android-dev/thread1191991.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не показывается AlertDialog (Программирование Android):

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

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

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

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

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

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
93 / 93 / 5
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

Custom AlertDialog
Помогите люди добрые, что то никак не нагуглю... А желательно кодом;)

Изменить цвет AlertDialog
Здравствуйте! Имеются такие строчки кода: str ="Мой телефонный номер:...


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

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

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