Состояние сети, обнаруживающее проблему с ConnectivityManager в Android
Я хочу выяснить, подключен ли этот мобильный телефон к Интернету или нет (Wi-Fi и мобильные данные). Я использую приведенный ниже код, и он работает нормально на всех устройствах, кроме одной заметки 4. Я нахожу проблему, когда он не отображается как ложный, когда он не подключен к Интернету. Пожалуйста, помогите мне.,
public class ConnectionDetector {
private Context _context;
public ConnectionDetector(Context context)
{
this._context = context;
}
public boolean isConnectingToInternet()
{
ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null)
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}
}
ConnectionDetector cd = new ConnectionDetector(ViewOrder.this);
Boolean isInternetPresent = cd.isConnectingToInternet();
if (isInternetPresent) {
// its giving true when its in offline only in mi note 4 device. all the mobiles which i checked its working fine
}
else {
}
1 ответ
Попробуй это,
public class NetworkUtility {
/**
* Provides whether internet is connected or not
* @param context
* @return true if connected ,
* else false
*/
public static boolean isInternetOn(Context context) {
if (context == null)
return false;
ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conn.getActiveNetworkInfo();
if (networkInfo != null) {
return networkInfo.isConnected();
}
return false;
}
}