#android
#Android
Вопрос:
Я использовал следующий код для определения того, доступно подключение к сети Intenet или нет, оно отлично работает до систем 3G. но это не работает для технологии 4G. У кого-нибудь есть идеи о том, как найти подключение к Интернету доступно или нет на 4g? если у какого-либо органа есть демокод для этого, пожалуйста, предоставьте его
Код:
public static boolean checkConnection(Context c)
{
ConnectivityManager mConnectivityManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
if(mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected() || telephonyManager.getDataState() == TelephonyManager.DATA_CONNECTED)
return true;
else
return false;
}
Заранее спасибо
Nirav modh
Ответ №1:
используйте TYPE_WIMAX
но это на уровне API 8
http://developer.android.com/reference/android/net/ConnectivityManager.html#TYPE_WIMAX
Комментарии:
1. Мои дорогие друзья, как проверить, доступно подключение LTE (4G) или нет? Здесь сеть 4G недоступна. Как это протестировать у вас есть какие-либо идеи по этому поводу?
2. если в вашей среде нет сети 4G / LTE, возможно, вам понадобится некоторое оборудование. Есть ли у вас устройства 4G / LTE? Если нет, почему вы хотите получить запрос / проблему такого рода? Или вам нужно имитировать среду 4g / LTE, но если у вас нет устройства 4G / LTE и сети, для чего это?
3. У меня есть устройство VZW LTE (HTC Thunderbolt), и я только что успешно протестировал, что оно работает только с TYPE_MOBILE.
Ответ №2:
Context context = MainActivity.this;
public synchronized static boolean isNetAvailable(Context context){
boolean isNetAvailable=false;
if ( context != null ){
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if ( mgr != null ){
boolean mobileNetwork = false;
boolean wifiNetwork = false;
boolean wiMaxNetwork = false;
boolean mobileNetworkConnecetd = false;
boolean wifiNetworkConnecetd = false;
boolean wiMaxNetworkConnected = false;
NetworkInfo mobileInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo wiMaxInfo = mgr.getNetworkInfo(ConnectivityManager.TYPE_WIMAX);
if ( mobileInfo != null )
mobileNetwork = mobileInfo.isAvailable();
if ( wifiInfo != null )
wifiNetwork = wifiInfo.isAvailable();
if(wiMaxInfo != null)
wiMaxNetwork = wiMaxInfo.isAvailable();
if(wifiNetwork == true || mobileNetwork == true || wiMaxNetwork == true){
mobileNetworkConnecetd = mobileInfo.isConnectedOrConnecting();
wifiNetworkConnecetd = wifiInfo.isConnectedOrConnecting();
wiMaxNetworkConnected = wiMaxInfo.isConnectedOrConnecting();
}
isNetAvailable = ( mobileNetworkConnecetd || wifiNetworkConnecetd || wiMaxNetworkConnected );
}
}
return isNetAvailable;
}
Проверка значения isNetAvailable истинна во всех 3 случаях, это работает для меня, желаю работать и для вас тоже
Примечание: Доступность 4G будет вводиться на уровне API 8 и далее.
Ответ №3:
Лучший способ проверить все подключения к Интернету — это короткий и точный код:
public boolean isConnectingToInternet() {
ConnectivityManager connectivity = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] allNetworkInfo = connectivity.getAllNetworkInfo();
if (allNetworkInfo != null)
for (NetworkInfo info : allNetworkInfo)
if (info.isConnectedOrConnecting()) {
return true;
}
}
return false;
}
Ответ №4:
Попробуйте это:
public static Boolean check_connection(final Context _context)
{
boolean connected;
ConnectivityManager conectivtyManager = (ConnectivityManager) _context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (conectivtyManager.getActiveNetworkInfo() != null
amp;amp; conectivtyManager.getActiveNetworkInfo().isAvailable()
amp;amp; conectivtyManager.getActiveNetworkInfo().isConnected())
{
connected = true;
} else
{
connected = false;
}
return connected;
}
Ответ №5:
public static boolean checkConnection(Context c)
{
ConnectivityManager connectivityManager = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo!=nullamp;amp;activeNetInfo.isConnected()){
Log.e(TAG, "Net connected");
return true;
}else{
Log.e(TAG, "Net Disconnected" );
return false;
}
}