привет, я хочу проверить, когда телефон или планшет подключен к сети (мобильной или Wi-Fi).
Имеет ли эта сеть доступ к Интернету, а также отправку и получение данных?
я использую этот код:
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI")) {
if (ni.isConnected()) {
Toast.makeText(context,"WIFI CONNECTED",Toast.LENGTH_LONG).show();
Boolean m = isOnline();
Toast.makeText(context,String.valueOf(m),Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context,"WIFI NOT CONNECTED AND AVAILABLE",Toast.LENGTH_LONG).show();
}
public boolean isOnline() {
Runtime runtime = Runtime.getRuntime();
try {
Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e) { e.printStackTrace(); }
catch (InterruptedException e) { e.printStackTrace(); }
return false;
}
но всегда возвращает false
(я тестирую приложение в BlueStacks).
я тестирую все коды, которые существуют в stackoverflow
log.e("TAG",e.printStackTrace());
в свой блокcatch
, чтобы показать ошибку в журнале. - person Mauker   schedule 27.08.2015