0
시작시 내 앱에서 네트워크 연결을 확인합니다. Android 2.3 ~ 4.4 버전에서는 아래의 방법이 효과적입니다 (에뮬레이터 또는 실제 장치). Android L 미리보기 에뮬레이터에서이 메서드는 false로 돌아옵니다. - 내가 상속 프로젝트에 몇 가지 이상한 StringBuilder
물건이Android L의 ConnectivityManager 미리보기
// ===============================================================
public static boolean haveNetworkConnection(Context ctx) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
boolean haveConnectedEthernet = false;
ConnectivityManager cm = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
// String con = ni.isConnected() ? "Connected" : "Not Connected";
if (!haveConnectedWifi) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
}
if (!haveConnectedMobile) {
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
if (!haveConnectedEthernet) {
if (ni.getTypeName().equalsIgnoreCase("ETHERNET"))
if (ni.isConnected())
haveConnectedEthernet = true;
}
StringBuilder sb = new StringBuilder();
sb.append(ni.getTypeName()).append(" ").append(ni);
}
return haveConnectedWifi || haveConnectedMobile
|| haveConnectedEthernet;
}
,이 코드를 작성하지 않은 :
여기 내 코드입니다. 작동 이후 아무 것도 변경할 필요가 없습니다. 누구든지 ConnectivityManager
작동 방식을 변경하면 API가 있는지 알고 있습니까? dev site에서 API overview 개의 변경 사항을 확인했지만 관련 정보가 표시되지 않았습니다.
여기에 sb의 용도는 무엇입니까? –
@niteshgoel 편집 된 로깅 용입니다. – KickingLettuce
형식 이름에 안정적인 API가 없습니다. 먼저 NetworkInfo.getType()을 사용하고 ConnectivityManager.TYPE_ * 상수를 확인하도록 변경합니다. – alanv