Ich versuche, einfache Ping-App auf Android schreiben, aber es funktioniert nicht. Es funktioniert nicht mehr, wenn ich versuche, die IP-Adresse zu pingen. hier ist der CodeAndroid App für Ping funktioniert nicht
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button pingbtn = (Button) findViewById(R.id.Ping_btn);
final TextView Ipinfo = (TextView) findViewById(R.id.Ping_info);
final EditText Ipfield = (EditText) findViewById(R.id.Ip_field);
Ipfield.setText("127.0.0.1");
pingbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Editable host = Ipfield.getText();
InetAddress Address = null;
try
{
Address = InetAddress.getByName(host.toString());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
try {
if (Address.isReachable(5000)) {
Ipinfo.append("\n" + host + "- Response ok");
} else {
Ipinfo.append("\n" + host);
}
}
catch(IOException e)
{
Ipinfo.append("\n "+ e.toString());
}
}
});
}
}
Und hier ist Fehler
FATAL AUSNAHME: Haupt Prozess: com.example.reaper.simpleping, PID: 15226 android.os.NetworkOnMainThreadException unter android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1147) bei libcore.io.BlockGuardOs.connect (BlockGuardOs.java:110) bei libcore.io.IoBridge.connectErrno (IoBridge.java:154) bei libcore.io.IoBridge.connect (IoBridge.java:122) bei java.net.InetAddress.isReachable (InetAddress.java:761) bei java.net.InetAddress.isReachable (InetAddress.java:715) bei java.net.InetAddress.isReachable (InetAddress.java:685) bei com.example.reaper.simpleping.MainActivity $ 1.onClick (MainActivity.java: 43) bei android.view.View.performClick (View.java:4756) bei android.view.View $ PerformClick.run (View.java:19749) bei android.os.Handler.handleCallback (Handler.java: 739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5221) bei java. lang.reflect.Method.invoke (Native Methode) bei java.lang.reflect.Method.invoke (Methode.java:372) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java: 899) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)
ich kann nicht verstehen, was ein Problem ist, und helfen Sie mir bitte ho finden w behebe diesen Fehler. danke für Aufmerksamkeit.
Abfrage für 'NetworkOnMainThreadException' Sie viele andere nützliche Informationen finden werden. Ich schlage vor, sich auf 'AsynkTask', 'Handler',' Thread' oder sogar andere 'Aufgaben' zu konzentrieren. – Bonatti