2017-05-17 2 views
0

Ich habe eine App auf Google Play, die auf meinem Handy funktioniert, wenn es als Remote-Test-Gerät verwendet, aber wenn ich es auf den Play Store hochladen und dann auf mein Handy herunterladen Arbeit es versäumt, irgendwelche Pakete zu übertragen.Ping App funktioniert nicht, wenn zu Google Play hinzugefügt

Siehe Code unten, ich weiß nicht, was das Problem ist, ich habe mir den ganzen Tag den Kopf kratzen, vielleicht ein Problem mit Berechtigungen?

package com.example.dale.whatismyip; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 


/** 
* Created by Dale on 22/01/2017. 
*/ 

public class PingActivity extends AppCompatActivity 
{ 
    private EditText pingEdit; 
    private String pingVal; 
    private TextView finalResult; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ping); 

     finalResult = (TextView) findViewById(R.id.result); 
     pingEdit = (EditText) findViewById(R.id.editText2); 


     final Button button = (Button) findViewById(R.id.button5); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       finalResult.setText(""); 
       pingVal = pingEdit.getText().toString(); 
       if(pingVal.contains(".") && pingVal.length() > 6) 
       { 
        PingTest runner = new PingTest(); 
        runner.execute(); 
       } 
       else 
       { 
        finalResult.setText("Invalid Address"); 
       } 
      } 
     }); 

    } 

    private class PingTest extends AsyncTask<String, String, String> 
    { 
     private String res; 

     @Override 
     protected String doInBackground(String... strings) { 
      try { 
       boolean sudo = false; 
       String cmd = "/system/bin/ping -c 4 -w 4 " + pingVal; 
       Process p; 
       if(!sudo) 
        p= Runtime.getRuntime().exec(cmd); 
       else{ 
        p= Runtime.getRuntime().exec(new String[]{"su", "-c", cmd}); 
       } 
       BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); 

       String s; 
       res = ""; 
       while ((s = stdInput.readLine()) != null) { 
        // CODE TO DO - create an array and populate it 
        System.out.println(res += s + "\n"); 
       } 
       p.destroy(); 
       return res; 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return ""; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
      // execution of result of Long time consuming operation 
      // CODE TO DO - pass this method both an array of type string and a string 
      // then do a while loop through it whilst the array is populated and set the value of the textview to the strings 
      finalResult.setText(result); 

     } 
    } 

} 

Antwort

0

Problem sortiert.

Der Code selbst war in Ordnung, aber die Stromsparfunktion auf Android stoppt die Ping-Funktionalität, da es Hintergrund-Netzwerk-Nutzung deaktiviert.

0

Okay, das ist so ein Vorschlag, aber testen Sie Ihr Telefon über einen Computer? Ist das Telefon über einen USB-Stick mit einem Computer verbunden?

und konnte drucken Sie einen Toast zu sehen, was in doInBackground

ist los ich nichts falsch in Ihrem Code finden.

+0

Danke, dass es über den PC über USB mit Android Studio getestet wurde, entschied ich mich, es als Beta-Anwendung in den Playstore zu laden und machte ein paar Änderungen und jetzt begann es zu arbeiten. – Crouch

+0

Okay, das ist großartig! . Du hast wahrscheinlich das Computernetzwerk benutzt. Wenn ich deine Frage beantwortet habe, markiere sie bitte. –

+0

Ich habe angefangen zu arbeiten, aber jetzt ist es kaputt Ich bin mir nicht sicher, was das Problem hier ist, habe ich keinen Code berührt Ich verließ es über Nacht – Crouch

Verwandte Themen