在為 Android 開發 Ping 應用程式以驗證網路連線時,必須解決只能 Ping 本機 IP 的限制。本文將深入研究根本問題,並提供將 ping 功能擴展到外部伺服器的解決方案。
原始問題中共享的程式碼示範了 Android 上 ping 的基本實作。但是,當嘗試 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 結果。這使得外部伺服器能夠被 ping 通,從而在 Android 應用程式中提供更全面的網路連線評估。
以上是如何從 Android Java 應用程式 Ping 外部 IP?的詳細內容。更多資訊請關注PHP中文網其他相關文章!