Я хочу слушать, когда устройство GoogleTV отключено, а затем отобразится всплывающее предупреждение.Слушайте, когда Android/GoogleTV отключен от WAN
Я думал, что достиг этого по приведенному ниже коду, но потом обнаружил, что я только предупреждал об отключении, когда кабель Ethernet-кабеля устройства отключен: например, LAN. Я не предупреждаю, когда сетевой кабель маршрутизатора отключен: т. Е. WAN.
Я обнаружил, что при отсоединении кабеля LAN устройство GTV потеряет свой IP-адрес, но при отключении кабеля WAN устройство GTV будет иметь IP-адрес, поэтому я не предупрежден о том, что приложение потеряло соединение.
Как я могу проверить, когда устройство GoogleTV больше не подключено к глобальной сети? Что мне нужно добавить к приведенному ниже коду для этого?
startListeningToNetwork();
private void startListeningToNetwork() {
if(_networkStateReceiver == null){
//Listen for when the network changes. If app loses internet before webView has loaded, then display error message.
_networkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(!isConnected()){
showNetworkErrorDialog();
} else {
closeNetworkError();
}
}
};
IntentFilter networkFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
getActivity().registerReceiver(_networkStateReceiver, networkFilter);
}
}
private boolean isConnected() {
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
Toast.makeText(getActivity(), "isConnected? " + (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected()) , Toast.LENGTH_SHORT).show();
return (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected());
}
'вернуть InetAddress.getByName ("google.com") isReachable (10 * 1000);.' :) –
isReachable() это хорошо, если я хочу знать, если есть подключение к Интернету прямо сейчас. Но я также хочу, чтобы вас предупреждали, когда Интернет потерян или получил повторное получение. Вот почему я использую метод registerReceiver(), упомянутый выше. С методом isReachable(), я думаю, я мог бы сделать таймер, чтобы постоянно пинговать «google.com», но похоже, что это не будет лучшей практикой. – jaxim
Вы пытались использовать 'isConnectedOrConnecting()' и 'isFailOver()'? –