네트워크 연결을 확인하기 위해 Android용 Ping 애플리케이션을 개발할 때 로컬 IP만 핑하는 제한을 해결하는 것이 중요합니다. 이 기사에서는 근본적인 문제를 조사하고 핑 기능을 외부 서버로 확장하는 솔루션을 제공할 것입니다.
원래 질문에 공유된 코드는 Android에서 핑의 기본 구현을 보여줍니다. 그러나 외부 서버에 ping을 시도할 때는 부족합니다. 이는 Android가 기본적으로 기기의 로컬 네트워크 외부 호스트에 대한 직접 네트워크 액세스를 제한하기 때문입니다.
이 제한을 극복하기 위해 기본 시스템 명령과 관련된 해결 방법이 사용됩니다. 제공된 솔루션은 Runtime.exec()를 활용하여 원하는 IP 주소(예: Google DNS의 경우 8.8.8.8)로 /system/bin/ping 명령을 실행합니다.
다음은 솔루션을 통합하는 업데이트된 코드입니다.
private boolean executeCommand(){ System.out.println("executeCommand"); Runtime runtime = Runtime.getRuntime(); try { Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8"); int mExitValue = mIpAddrProcess.waitFor(); System.out.println(" mExitValue "+mExitValue); return mExitValue == 0; } catch (Exception e) { e.printStackTrace(); System.out.println(" Exception:"+e); } return false; }
이 접근 방식을 활용하여 ExecuteCommand() 메서드는 기본 ping 명령을 시작하고 해당 명령을 기다립니다. 완료하고 핑 결과를 나타내는 부울을 반환합니다. 이를 통해 외부 서버에 ping을 보내 Android 애플리케이션 내에서 보다 포괄적인 네트워크 연결 평가를 제공할 수 있습니다.
위 내용은 Android Java 애플리케이션에서 외부 IP를 Ping하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!