Как узнать, подключено ли мое устройство к сети или нет? Как определить связь? Любой пример кода?
Как я могу проверить, подключено ли устройство Android к Интернету?
Ответ 1
Во-первых, вам нужно разрешение знать, подключено ли устройство к сети или нет. Это должно быть в вашем манифесте в элементе <manifest>
:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Затем вам нужно получить ссылку на ConnectivityManager:
ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE);
Оттуда вам нужно получить объект NetworkInfo. Для большинства это будет означать использование ConnectivityManager. getActiveNetworkInfo():
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
}
Оттуда вам просто нужно использовать один из методов NetworkInfo, чтобы определить, подключено ли устройство к Интернету:
boolean isConnected = ni.isConnected();
Ответ 2
Во-первых, вам нужно разрешение знать, подключено ли устройство к сети или нет. Это должно быть в вашем манифесте, в элементе:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
затем
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if (connec != null && (
(connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) ||
(connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED))) {
//You are connected, do something online.
} else if (connec != null && (
(connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.DISCONNECTED) ||
(connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.DISCONNECTED ))) {
//Not connected.
Toast.makeText(getApplicationContext(), "You must be connected to the internet", Toast.LENGTH_LONG).show();
}
Ответ 3
Добавьте это разрешение в файл AppManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Метод проверки доступности сети или нет:
boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
return isConnected;
}
Ответ 4
http://developer.android.com/reference/android/net/ConnectivityManager.html - CONNECTIVITY_ACTION