0
그래서 여기에 this answer이 있습니다. 그러나 isNetworkAvailable 함수가 컨텍스트 유형 매개 변수로 호출 할 때 정의되지 않았으므로 실행할 수 없습니다. 이 내가 사용하는 코드입니다 :응용 프로그램에서이 코드를 시작할 수없는 이유는 무엇입니까?
private boolean isNetworkAvailable(Context context)
{
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni!= null && ni.isConnected())
{
return true;
}
return false;
}
public boolean dostupanInternet(Context context)
{
if(isNetworkAvailable(context))
{
try
{
HttpURLConnection url = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
url.setRequestProperty("User-Agent", "test");
url.setRequestProperty("Connection", "close");
url.setConnectTimeout(1000);
url.connect();
return(url.getResponseCode() == 200);
}
catch(IOException e)
{
Log.e("LOG_TAG","Povezivanje sa internetom nije uspelo",e);
}
}
else
{
Log.d("LOG_TAG", "Povezivanje sa internetom nije uspelo");
}
return false;
}
하지만이를 실행할 때 치명적인 오류를 반환 및 종료에 응용 프로그램을 강제로. 내 질문은 - 치명적인 오류 (분명히 처리되지 않은 예외)가 발생한 이유와 그 인터넷 가용성 검사를 통과 한 코드가 무엇입니까?
*. 또한 네트워크 작업이 기본 (UI) 스레드에서 수행되지 않도록하십시오. –
코드에'ACCESS_NETWORK_STATE' 권한이 필요하다는 사실을 명심하십시오. – CommonsWare
ACCESS_NETWORK_STATE 및 인터넷 사용 권한을 모두 추가했습니다. 두 분 모두 도와 주셔서 감사합니다. – NitroNbg