L
leost
Gast
Hallo,
ich habe eine App geschrieben, die Einstellungsmöglichkeiten für eine von mir Programmierte Kamera an einem Raspberry Pi bietet. Dazu möchte ich die Daten an ein PHP-Script auf dem Pi schicken. Der Code der Klasse, die diese Aufgabe hat, ist:
Ich habe mehrere Logeinträge eingebaut, um zu erkennen, wie weit der Code ausgeführt wird. Es wird aber nur der Logeintrag "bis zur abfrage sind wir ja immerhin schon ein mal" ausgegeben, d.h. der Thread für die Übermittlung der Daten wird nicht gesendet. Ansonsten werden keine Logeinträge wie Fehler ausgegeben, die App gibt bei Buttondruck nur den einen Logeintrag aus. Vielen Dank für Hilfe, Leonard
ich habe eine App geschrieben, die Einstellungsmöglichkeiten für eine von mir Programmierte Kamera an einem Raspberry Pi bietet. Dazu möchte ich die Daten an ein PHP-Script auf dem Pi schicken. Der Code der Klasse, die diese Aufgabe hat, ist:
Code:
package de.leonard.rpicontrol.kamera;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
import de.leonard.rpicontrol.R;
public class Steuern extends Activity implements OnClickListener {
private Button speichern;
private Handler handler;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kamerasteuern);
//Handler setzen
handler = new Handler();
//Momentan gesetzte Einstellungen über Server abrufen und in den Textfeldern eintragen
//Achtung!!! Bei der Abfrage von Dezimalzahlen darauf achten, dass Punkt anstatt Komma verwendet wird
//AlertDialog bei Verbindungsfehler anzeigen
//Buttons verarbeiten
speichern = (Button) findViewById(R.id.aenderungen_speichern);
speichern.setOnClickListener(this);
}
public void onClick(View v) {
if (v == speichern) {
//Alle Daten aktualisieren, aber die Einstellugnen werden noch nicht gültig, sie werden aber abgespeichert
//Neue Daten ermitteln
//Aktivitätsstatus
Switch aufnahme_s = (Switch) findViewById(R.id.aufnahme_aktiv);
final String aufnahme;
if (aufnahme_s.isChecked()) {
aufnahme = "1";
} else {
aufnahme = "0";
}
//Bilder-bis-stopp (bbs)
EditText bbs_et = (EditText) findViewById(R.id.bbs);
final String bbs = bbs_et.getText().toString();
//Startwert Aufnahme
EditText start_et = (EditText) findViewById(R.id.startwert);
final String start = start_et.getText().toString();
//Stoppwert aufnahme
EditText stopp_et = (EditText) findViewById(R.id.stoppwert);
final String stopp = stopp_et.getText().toString();
//Ausgabepfad
EditText ordner_et = (EditText) findViewById(R.id.ausgabepfad);
final String ordner = ordner_et.getText().toString();
//Nummer der Kammera (Zählung ab 0)
EditText kamera_et = (EditText) findViewById(R.id.kameranummer);
final String kamera = kamera_et.getText().toString();
//Abfrage
Log.d("super","bis zur abfrage sind wir ja immerhin schon ein mal");
new Thread(new Runnable() {
public void run() {
handler.post(new Runnable() {
public void run() {
Toast.makeText(Steuern.this,"thread gestartet",Toast.LENGTH_LONG).show();
}
});
Log.d("super","und auch der neue thread für die abfrage wird erfolgreich gestartet");
//Die Abfrage in einem eigenen Thread erstellen
//Http-Client
HttpClient client = new DefaultHttpClient();
//HTTP-Get
String url = "http://192.168.2.122/video/?aufnahne="+aufnahme+"&bbs="+bbs+"start="+start+"&stopp="+stopp+"&ordner="+ordner+"&kamera="+kamera;
HttpGet get = new HttpGet(url);
Log.d("super","alle daten werden auch erfolgreich erstellt, client und get exisitieren");
//Request
try {
//Antwort in Variable
HttpResponse antwort = client.execute(get);
//Text der Antwort lesen
HttpEntity entity = antwort.getEntity();
//Inhalt des Textes lesen
InputStream web = entity.getContent();
//Antwort konvertieren
Log.d("super","auch der request funktioniert problemlos");
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(web,"utf-8"));
//Erste Zeile der Antwort ausgeben
String code = reader.readLine();
Log.d("code",code);
} catch (Exception e) {
Log.d("fehler","lesen");
e.printStackTrace();
}
} catch (Exception e) {
Log.d("fehler","abfragen");
e.printStackTrace();
}
}
});
}
}
}