android
앱을 개발 중이며 인터넷 연결이되어 있는지 확인하는 가장 좋은 방법을 알고 싶습니다. connectivity manager
과 networkinfo
클래스를 사용해 보았지만 내 앱이 net없이 충돌을 계속 견디지 못하거나 아무렇지도 않게 사용했다면 HttpConnection
메서드를 사용합니다. 누군가 귀중한 제안을 할 수 있습니까?android에서 인터넷 연결을 확인하는 가장 좋은 방법
답변
URL myurl = new URL(url);
URLConnection connection = myurl.openConnection();
connection.setConnectTimeout(20 * 1000);
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = -1;
try {
responseCode = httpConnection.getResponseCode();
} catch (Exception e1) {
throw e1;
}
if (responseCode == HttpURLConnection.HTTP_OK) {
//connection is OK and do what you want
//...
}
else
{
//connection is not OK
httpConnection.disconnect();
}
breceive ... 덕분에이 코드와 완벽하게 잘 어울렸다. –
환영합니다 :) – breceivemail
그 오래된 질문이지만 내가하고있는 일은 다른 사람들도 유용하게 사용하도록 여기에 응답하는 것입니다. 클래스 아래와 같이 확인 :
if(new ConnectionDetector(context).isConnectedToInternet()){
//Connected
//do what you want to do here
} else{
// Not connected
// show appropriate message
}
Udacity의의 우수한 고급 안드로이드 앱 개발 과정은 getActiveNetworkInfo을 (사용)
:public class ConnectionDetector {
private Context context;
public ConnectionDetector(Context context) {
this.context = context;
}
public boolean isConnectedToInternet() {
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;
}
}
그런 다음 연결을 확인하기 위해 activity
에서이 같은 클래스를 method
전화
https://www.udacity.com/course/advanced-android-app-development--ud855
/**
* @param context Context used to get the ConnectivityManager
* @return true if network has connectivity (i.e. is reachable), else return false
*/
static public boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return ((activeNetworkInfo != null)
&& activeNetworkInfo.isConnectedOrConnecting());
}
옆으로 : 천리안의 멋진 대답은 getAllNetworkInfo를 API 수준 23에서 사용 중지되었습니다.
Android 설명서에 getAllNetworks() 및 getNetworkInfo (android.net.Network)가 대신 사용됩니다.
http://developer.android.com/reference/android/net/ConnectivityManager.html#getAllNetworkInfo()
나는 다음과 같이 천리안의 방법을 업데이트하고 내가 위에서 Udacity의의 간단한 isNetworkAvailable 방법을 볼 때까지 그것을 사용.
/**
* @return true if network has connectivity (i.e. is reachable), else return false
*/
boolean hasConnectivity(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
Network[] networks = connectivityManager.getAllNetworks();
if ((networks != null)
&& (networks.length > 0)) {
for (Network network : networks) {
NetworkInfo info = connectivityManager.getNetworkInfo(network);
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
이 발생되고 어떤 오류 지정 예외를 확인하고 오류를 기반으로 사용자에게 메시지를 표시 할 수 있습니다 제안 임.
try {
URL url = new URL("https://google.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(10000);
connection.connect();
success = connection.getResponseCode() == 200;
} catch (IOException e) {
//use the function here
onError(this,e);
}
public void onError(Activity activity,Throwable e){
try {
e.printStackTrace();
FirebaseCrash.report(e);
if (e instanceof HttpException) {
Response body = ((HttpException) e).response();
if (body.code() == 401) {
Toast.makeText(activity, "Not Authorized Access", Toast.LENGTH_SHORT).show();
} else if (body.code() == 404) {
Toast.makeText(activity, "Request not found", Toast.LENGTH_SHORT).show();
} else if (body.code() == 400) {
Toast.makeText(activity, "Bad Request", Toast.LENGTH_SHORT).show();
} else if (body.code() == 500) {
Toast.makeText(activity, "Internal Server Error", Toast.LENGTH_SHORT).show();
} else {
Log.e(Constants.TAG, "Error : Code HTTP = " + body.code());
}
}else if(e instanceof ConnectException || e instanceof SocketException){
Toast.makeText(activity, "No Internet Connection", Toast.LENGTH_SHORT).show();
} else if (e instanceof UnknownHostException) {
Toast.makeText(activity, "Make Sure Your Internet Connection is Properly Connected", Toast.LENGTH_SHORT).show();
} else if (e instanceof SSLHandshakeException || e instanceof SSLPeerUnverifiedException) {
Toast.makeText(activity, "Server Connection Problem..Please Try Again", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(activity, "Data Load Error", Toast.LENGTH_SHORT).show();
}
}
catch (Exception ex){
FirebaseCrash.report(e);
e.printStackTrace();
}
}
- 1. 자바 스크립트의 인터넷 연결을 확인하는 모범 사례
- 2. 인터넷 연결을 확인하거나 인터넷 연결을 끊임없이 확인하십시오.
- 3. 앱이 실행되는 동안 인터넷 연결을 확인하고 연결을 알리는 방법.
- 4. 유닛을 테스트하여 인터넷 연결을 확인하는 모듈
- 5. Android에서 인터넷 연결을 확인할 때 오류가 발생합니다.
- 6. 인터넷에 연결을 확인하는 방법
- 7. Java ME에서 인터넷 연결을 확인하는 방법은 무엇입니까?
- 8. 안드로이드에서 인터넷 연결을 확인하는 방법은 무엇입니까?
- 9. 데이터베이스 연결을 만드는 가장 좋은 방법
- 10. 데이터베이스/연결을 테스트하는 가장 좋은 방법
- 11. 인터넷 연결을 확인할 수있는 방법 또는 플렉스에
- 12. GWT 응용 프로그램에서 인터넷 연결을 처리하는 방법
- 13. 코드로 인터넷 연결을 끊는 방법?
- 14. 즉시 인터넷 연결을 확인하십시오.
- 15. android에서 UI 스레드를 업데이트하는 가장 좋은 방법
- 16. httpresponse android에서 json을 처리하는 가장 좋은 방법
- 17. C2DM 연결을 확인하는 방법
- 18. dom 객체의 onresize를 확인하는 가장 좋은 방법
- 19. CodeIgniter - 실제 결과를 확인하는 가장 좋은 방법
- 20. 뷰포트 또는 '표준'브라우저인지 확인하는 가장 좋은 방법
- 21. 종속 프로젝트의 버전을 확인하는 가장 좋은 방법
- 22. html5의 온라인 상태를 확인하는 가장 좋은 방법
- 23. 행이 있는지 확인하는 가장 좋은 방법
- 24. 내 앱이 업데이트되었는지 확인하는 가장 좋은 방법
- 25. 사용자가 데이터를 보았는지 확인하는 가장 좋은 방법
- 26. SQL에서 행이 업데이트되었는지 확인하는 가장 좋은 방법
- 27. android에서 인터넷 속도 계산하기
- 28. Objective C에서 인터넷 연결을 확인하십시오.
- 29. 인터넷 연결 IOS의 유형을 확인하는 방법
- 30. iPhone에서 사용중인 인터넷 연결 유형을 확인하는 방법
앱이 중단되는 "그물"이 부족한가요? 라자의 코드가 작동해야합니다. – Austin
그래, 난 에뮬레이터와 전화도 시도했다 –