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

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

Войти
Регистрация
Восстановить пароль
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
#1

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

18.05.2013, 00:25. Просмотров 967. Ответов 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);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:25     Не показывается AlertDialog
Посмотрите здесь:

Android AlertDialog Error
Потоки и AlertDialog Android
Android AlertDialog появляется дважды
AlertDialog Android
ListView+onCreateContextMenu->AlertDialog Android
Android Изменить цвет AlertDialog
Android AutoShow keyboard in AlertDialog
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:29     Не показывается AlertDialog #2
ну так логи с реального устройства и покажите...
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.05.2013, 00:31  [ТС]     Не показывается AlertDialog #3
А по делу глядя на код можете помочь?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.05.2013, 00:37     Не показывается AlertDialog #4
а у вас нет устройства?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.05.2013, 00:40  [ТС]     Не показывается AlertDialog #5
Есть. Я ж написал, что на реальном устройстве, если есть сервисы, работает всё как нужно, если их удалить, приложение вылетает

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

Добавлено через 6 минут
кстати, сервисы можно установить на эмулятор
adb install com.google.android.gms-19032013.apk
adb install com.android.vending-19032013.apk
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
19.05.2013, 00:37  [ТС]     Не показывается AlertDialog #15
Цитата Сообщение от V0v1k Посмотреть сообщение
Лог для реального устройства из Эклипса.
Он показывает на строку
Java
1
myMap.setMyLocationEnabled(true);
в ней null
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.05.2013, 01:25     Не показывается AlertDialog #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); 
}
п.с. Способ определения какой-то странный
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
23.05.2013, 11:25  [ТС]     Не показывается AlertDialog #17
Цитата Сообщение от c4sp3r Посмотреть сообщение
п.с. Способ определения какой-то странный
Способ определения чего?
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
28.05.2013, 03:02     Не показывается AlertDialog #18
private boolean checkPlayServices
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
29.05.2013, 00:34  [ТС]     Не показывается AlertDialog #19
Цитата Сообщение от Gruzer Посмотреть сообщение
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
По логам падает из-за того, что myMap null
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 20:40     Не показывается AlertDialog
Еще ссылки по теме:

Не работает AlertDialog Android
Android AlertDialog и RadioGroup
Android AlertDialog обработка нажатия PositiveButton
Android AlertDialog вылезает за разметку
Android Создание AlertDialog со списком

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

Или воспользуйтесь поиском по форуму:
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
01.06.2013, 20:40     Не показывается AlertDialog #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;
        }
Yandex
Объявления
01.06.2013, 20:40     Не показывается AlertDialog
Ответ Создать тему
Опции темы

Текущее время: 09:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru