Apabila membangunkan aplikasi Ping untuk Android untuk mengesahkan kesambungan rangkaian, adalah penting untuk menangani pengehadan hanya ping IP tempatan. Artikel ini akan menyelidiki isu asas dan menyediakan penyelesaian untuk melanjutkan keupayaan ping ke pelayan luaran.
Kod yang dikongsi dalam soalan asal menunjukkan pelaksanaan asas ping pada Android. Walau bagaimanapun, ia gagal apabila cuba ping pelayan luaran. Ini kerana Android mengehadkan akses rangkaian terus kepada hos di luar rangkaian tempatan peranti secara lalai.
Untuk mengatasi pengehadan ini, penyelesaian yang melibatkan perintah sistem asli digunakan. Penyelesaian yang disediakan memanfaatkan Runtime.exec() untuk melaksanakan perintah /system/bin/ping dengan alamat IP yang diingini (cth., 8.8.8.8 untuk Google DNS).
Berikut ialah kod dikemas kini yang menggabungkan penyelesaian:
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; }
Dengan menggunakan pendekatan ini, kaedah executeCommand() memulakan arahan ping asli, menunggu untuk siap, dan mengembalikan boolean yang menunjukkan hasil ping. Ini membolehkan pelayan luaran diping, memberikan penilaian ketersambungan rangkaian yang lebih komprehensif dalam aplikasi Android.
Atas ialah kandungan terperinci Bagaimana untuk Ping IP Luaran daripada Aplikasi Java Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!