Как проверить интернет-соединение в Google Nexus 7 (Android 4.2)
Я использовал следующий код для проверки интернет-соединения.
public static boolean checkNetworkConnection(Context context) {
boolean connected = true;
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState() == android.net.NetworkInfo.State.CONNECTED
|| connectivityManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).getState() == android.net.NetworkInfo.State.CONNECTED) {
connected = true;
} else
connected = false;
}
Этот код работает нормально ниже мобильного. Но это не работает в Google Nexus 7 (Android 4.2).
Когда я тестирую этот код в Google Nexus 7 (Android 4.2). Я получил ошибку.
Исключение нулевого указателя в диспетчере соединений
2 ответа
Решение
Для меня это работает:
public static boolean isInternetEnabled() {
ConnectivityManager conMgr = (ConnectivityManager) YourApp.context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting())
return true;
else
return false;
}
Вам понадобится это разрешение в вашем манифесте:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Проверьте TYPE_MOBILE
является нулевым или не использует приведенный ниже код.
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null