2016-06-22 15 views
0

Ich bin Neuling in Android-Programmierung. Ich muss eine App für meine Abschlussarbeit machen. Also habe ich das Programm gemacht und es auf VM getestet und alles war in Ordnung, aber als ich versuchte, es auf einem echten Gerät zu starten, funktionierte das Programm nicht. Mein Projekt besteht darin, eine App zu erstellen, die Daten von Arduino liest und in einem Diagramm darstellt. Wenn ich es auf einem echten Gerät teste, konnte meine App die Daten nicht lesen. Von der Seite von Arduino sah ich, dass die Verbindung hergestellt wurde.App läuft perfekt auf Emulator, aber nicht auf echtes Gerät

Vielen Dank für Ihre Hilfe.

für die Verbindung MY-Code ist:

private class DownloadTask extends AsyncTask<String, Void, String> { 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      return downloadContent(params[0]); 
     } catch (IOException e) { 
      return "Unable to retrieve data. URL may be invalid."; 
     } 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     // Toast.makeText(graphActivity.this, result, Toast.LENGTH_LONG).show(); 
     textStatus.setText(result); 
    // myNum= Double.parseDouble(result); 
    // mytime= mytime+1; 
     // series.appendData(new DataPoint(mytime*1d ,myNum),true,28800); 
    } 
} 

private String downloadContent(String myurl) throws IOException { 
    InputStream is = null; 
    int length = 500; 

    try { 
     URL url = new URL(myurl); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(10000 /* milliseconds */); 
     conn.setConnectTimeout(15000 /* milliseconds */); 
     conn.setRequestMethod("GET"); 
     conn.setDoInput(true); 
     conn.connect(); 
     int response = conn.getResponseCode(); 
     Log.d(TAG, "The response is: " + response); 
     is = conn.getInputStream(); 

     // Convert the InputStream into a string 
     String contentAsString = convertInputStreamToString(is, length); 
     return contentAsString; 
    } finally { 
     if (is != null) { 
      is.close(); 
     } 
    } 
} 

public String convertInputStreamToString(InputStream stream, int length) throws IOException, UnsupportedEncodingException { 

    reader = new InputStreamReader(stream); 
    char[] buffer = new char[length]; 
    reader.read(buffer); 
    return new String(buffer); 
} 
+0

Erhalten Sie irgendwelche Fehler oder Abstürze? – Warrick

+0

Wenn ich die Zeilen in "onPostExecute" nicht kommentieren, bekomme ich FATALE AUSNAHME: main java.lang.NumberFormatException: Ungültige Doppel: "Kann Daten nicht abrufen. URL kann ungültig sein.". Vielleicht weil es etwas von Arduino nicht lesen kann. Ich habe vergessen zu erwähnen, dass Arduino und Real-Gerät im selben Netzwerk sind. Ich weiß nicht, ob es wichtig ist. –

+0

Haben Sie alle korrekten Berechtigungen im Manifest? Sind Sie sicher, dass Sie das lokale WLAN und keine Mobilfunkverbindung verwenden? –

Antwort

0

ich, dass das Problem gelöst sagen wollte. Der Code läuft perfekt ohne Änderungen. Das Problem war von der Arduino-Seite. Ich habe einige Änderungen an Arduino-Code und BOOM ... es funktioniert: D :). Wenn jemand den Code benutzen möchte, ist es in Ordnung. Läuft entweder auf AVD entweder auf einem echten Gerät.

Verwandte Themen