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

Каким способом вы определяете наличие соединения с интернетом - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Изменение размера W и H в layout http://www.cyberforum.ru/android-dev/thread1600936.html
Добрый вечер! Возник вот какой вопрос. Создаём элементы: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="844px" android:layout_height="1061px" android:background="#77acff" tools:context=".MainActivity"
Программирование Android Получить индекс элемента в кастомном списке Добрый день. У меня имеется кастмоный список, состоящий из двух и более элементов. Например, я кликнул по 2 элементу списка, длина которого равна 4. Как можно получить индекс элемента, который был нажат. Подскажите пожалуйста. Код элемента для кастомного списка: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ... http://www.cyberforum.ru/android-dev/thread1600823.html
Видимость компонентов Программирование Android
Что прописывать нужно в mainActivity для того чтобы при нажатии скрылся компонент ImageView? Как реализовать событие нажатия я знаю, а вот сам код скрытия компонента imageview какой????
Parallax effect for fragments Программирование Android
Добрый вечер, требуется сделать эффект параллакса при перелистывании фрагментов, но, что самое затруднительное, один из экранов должен изначально частично находиться поверх другого, при этом именно частично перекрытый экран должен быть активным. Пытался найти что-либо подобное, но самое близкое, что нашел, было вот это (...
Программирование Android Провести перпендикуляр на карте http://www.cyberforum.ru/android-dev/thread1600541.html
Есть прямая, обозначенная точками A и B. Есть точка С. Требуется провести перпендикуляр на прямую AB. Нашел алгоритм: double L=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); double PR=(x-x1)*(x2-x1)+(y-y1)*(y2-y1); bool res=true; double cf=PR/L; if(cf<0){ cf=0; res=false; }
Программирование Android Вывод по времени Подскажите как реализовать вывод информации из фаилов по вермени , то есть мне нужно , что бы в определенное время по нажатию кнопки выводило информацию из фаила. подробнее

Показать сообщение отдельно
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
07.12.2015, 14:00     Каким способом вы определяете наличие соединения с интернетом
я немного напрягся, может что-то из этого и выйдет
проверяем пинги на гугловский dns - у него аптайм практически 100%, если на него не идут пинги, либо нет инета либо вы за http прокси сервером (что случается не так часто и это тема отдельного разговора)

методы помещаем где-то в MainActivity, я не стал делать с помощью интерфейсов, половина народа не осилит, а кто осилит и сам переделает
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
    private void onInternetChecked(boolean hasInternet) {
        if (hasInternet) Toast.makeText(this, "таки есть", Toast.LENGTH_SHORT).show();
        else Toast.makeText(this, "таки нету", Toast.LENGTH_SHORT).show();
    }
 
    private static void checkInternet(final MainActivity context) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                boolean result = false;
                try {
                    Process p = Runtime.getRuntime().exec("ping -c 3 8.8.8.8");
                    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String inputLine;
                    StringBuilder sb = new StringBuilder();
                    while ((inputLine = in.readLine()) != null) sb.append(inputLine);
                    Pattern pattern = Pattern.compile(", (\\d+)% packet loss,");
                    Matcher m = pattern.matcher(sb.toString());
                    int loss = 100;
                    if (m.find()) loss = Integer.parseInt(m.group(1));
                    if (loss > -1 && loss < 100) result = true;
                    in.close();
                } catch (IOException ignored) {
                }
                final boolean finalResult = result;
                context.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        context.onInternetChecked(finalResult);
                    }
                });
            }
        }).start();
    }
манифест
XML
1
    <uses-permission android:name="android.permission.INTERNET" />
если коротко, то проверяем строку ответа на пинги, если там есть подстрока, содержащая % потерь от 0 до 99 значит инет есть, иначе его нет

проверил на эмуляторе и телефоне по wifi и 3g (с серым ip)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru