こんにちは、電話またはタブレットがネットワーク (モバイルまたは Wi-Fi) に接続されていることを確認したいです。
このネットワークはインターネットにアクセスし、データを送受信しますか?
私はこのコードを使用します:
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI")) {
if (ni.isConnected()) {
Toast.makeText(context,"WIFI CONNECTED",Toast.LENGTH_LONG).show();
Boolean m = isOnline();
Toast.makeText(context,String.valueOf(m),Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context,"WIFI NOT CONNECTED AND AVAILABLE",Toast.LENGTH_LONG).show();
}
public boolean isOnline() {
Runtime runtime = Runtime.getRuntime();
try {
Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
int exitValue = ipProcess.waitFor();
return (exitValue == 0);
} catch (IOException e) { e.printStackTrace(); }
catch (InterruptedException e) { e.printStackTrace(); }
return false;
}
しかし、それは常にfalseを返します
(私は BlueStacks でアプリをテストします)。
私はstackoverflowに存在するすべてのコードをテストします