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

Как выводить сообщение об отсутствии соединения с интернетом? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Оценка производительности http://www.cyberforum.ru/android-dev/thread1150573.html
Здравствуйте, есть простой довольно вопрос, но ответа на него никак не могу найти. В общем пытались мы тут оценить производительность java на приложении для Андроида. Написали элементарнейший совершенно цикл: float q = 1.2; for (int i = 0; i < 1000; i++) { for (int j = 0; j < 1000; j++) { for (int k = 0; k < 1000; k++) {
Android Изменения профайлов пользователя на платформе Android Здравствуйте. Пишу на языке java под android, используя eclipse и емуляторы. Проблема заключается в следующем - как мне изменить профайл пользователя в заданое время? Нужно чтобы приложение допустим в 9 часов переключилось на режим без звука? Как это организувать? PS. Я новачок в програмировании под android, так что извините за скромность вопроса:-) http://www.cyberforum.ru/android-dev/thread1150285.html
Android Ошибка при получении Google Cloud Messaging
Я пытаюсь поставить Google Cloud Messaging в свое приложение, использовал этот официальный гайд , но когда приходит сам GCM на телефон, вылазиет ошибка. Содержимое файлов: AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.games.zx" ... <receiver android:name=".GcmBroadcastReceiver" ...
Вывод в TextView версии API Android
Доброго времени суток всем) Такой вопрос, мне необходимо выводить версии API в TextView на котором запущенно приложение, слышал то подобное можно реализовать с помощью CharSequence. Может кто по подробнее рассказать об этом?
Android Подправить разметку http://www.cyberforum.ru/android-dev/thread1150125.html
Господа помогите с разметкой. Каждый раз как делаю новую разметку все забываю по этой теме. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RadioGroup android:id="@+id/rgGravity"
Android Почему не двигаются элементы? Эмм тупой конечно вопрос, но не могу понять, почему во fragment_main.xml элементы можно перемещать: Тык Но стоит мне создать ещё один .xml файл, в нем они стоят неподвижно в верхнем левом углу(или уже в созданом файле, main.xml): Тык в чем проблема может быть? заранее большое спасибо подробнее

Показать сообщение отдельно
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
18.04.2014, 18:23     Как выводить сообщение об отсутствии соединения с интернетом?
olorin3000, хорошо.
1. Описываем callback interface

Java
1
2
3
4
5
6
7
8
9
10
public interface INetworkConnectivityStateCallback {
    enum NetworkTypes {
        DISABLE,
        MOBILE,
        WIFI,
        WIMAX
    }
 
    void OnNetworkStateChange(NetworkTypes type);
}
2. Сам класс-оболочка + ресивер

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
public class NetworkConnectivityListener {
    private static final String TAG = "NetworkConnectivityListener";
    private static NetworkConnectivityListener instance;
 
    public static NetworkConnectivityListener getInstance() {
        if (instance == null) {
            instance = new NetworkConnectivityListener();
        }
        return instance;
    }
 
    private static Context mContext;
    private static boolean mListening;
    private static List<INetworkConnectivityStateCallback> networkConnectivityStateCallbackList = new ArrayList<INetworkConnectivityStateCallback>();
    private ConnectivityBroadcastReceiver mReceiver;
 
    public static class ConnectivityBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (!action.equals(ConnectivityManager.CONNECTIVITY_ACTION) || !mListening) {
                return;
            }
 
            boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
            if (noConnectivity) {
                invokeAllCallbacks(DISABLE);
                return;
            }
 
            // Check each connection type
 
            ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
            /**
             * WIFI
             */
 
            /** Check the connection **/
            NetworkInfo network = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
 
            // Make sure the network is available
            if (isNetworkAvailable(network)) {
                invokeAllCallbacks(WIFI);
                return;
            }
 
            /**
             * 2G/3G
             */
            /** Check the connection **/
            network = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
 
            if (isNetworkAvailable(network)) {
                invokeAllCallbacks(MOBILE);
                return;
            }
 
            /**
             * 4G
             */
 
            /** Check the connection **/
            network = cm.getNetworkInfo(ConnectivityManager.TYPE_WIMAX);
 
            // Make sure the network is available
            if (isNetworkAvailable(network)) {
                invokeAllCallbacks(WIMAX);
                return;
            }
 
            invokeAllCallbacks(DISABLE);
 
 
        }
 
        private boolean isNetworkAvailable(NetworkInfo network) {
            return network != null && network.isAvailable() && network.isConnected();
        }
    }
 
    NetworkConnectivityListener() {
        mReceiver = new ConnectivityBroadcastReceiver();
    }
 
    /**
     * Start listening
     */
    public synchronized void startListening() {
        if (!mListening) {
            mContext = TheApplication.getInstance().getApplicationContext();
 
            IntentFilter filter = new IntentFilter();
            filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            mContext.registerReceiver(mReceiver, filter);
            mListening = true;
        }
    }
 
    /**
     * Stop listening
     */
    public synchronized void stopListening() {
        if (mListening) {
            mContext.unregisterReceiver(mReceiver);
            mContext = null;
            mListening = false;
        }
    }
 
 
    public void addNetworkConnectivityListener(INetworkConnectivityStateCallback callback) {
        if (networkConnectivityStateCallbackList.contains(callback)) {
            Log.d(TAG, "Callback already registered");
        } else {
            networkConnectivityStateCallbackList.add(callback);
        }
    }
 
    public void removeNetworkConnectivityListener(INetworkConnectivityStateCallback callback) {
        if (!networkConnectivityStateCallbackList.contains(callback)) {
            Log.d(TAG, "Callback already unregistered");
        } else {
            networkConnectivityStateCallbackList.remove(callback);
        }
    }
 
    /**
     * Inform all instances of {@link INetworkConnectivityStateCallback} what network was enabled with {@link INetworkConnectivityStateCallback.NetworkTypes} type
     *
     * @param networkType Network connection type
     */
    private static void invokeAllCallbacks(INetworkConnectivityStateCallback.NetworkTypes networkType) {
        for (INetworkConnectivityStateCallback callback : networkConnectivityStateCallbackList) {
            if (callback != null) callback.OnNetworkStateChange(networkType);
        }
    }
 
}
3. Работа с ним:

Java
1
2
3
4
5
6
7
8
9
10
NetworkConnectivityListener listener = NetworkConnectivityListener.getInstance();
        listener.addNetworkConnectivityListener(new INetworkConnectivityStateCallback() {
            @Override
            public void OnNetworkStateChange(NetworkTypes type) {
                if (type == NetworkTypes.DISABLE) {
                    //No internet connection
                }
            }
        });
        listener.startListening();
 
Текущее время: 17:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru