N
Nanika
Neues Mitglied
- 0
Hallo zusammen,
momentan bin ich dabei, eine App zu entwickeln, mit der ich einige Probleme habe. Ich bin absolute Anfängerin in der App-Entwicklung und hoffe, dass ihr mir helfen möchtet
Also, meine App soll erstmal einfach nur eine Verbindung zu einer Webseite aufbauen und ein Bild runterladen (Bild runterladen ist noch nicht mit drin, ich habe zu meinem Verständnis erstmal nur ein Beispiel übernommen). Dazu habe ich bisher das hier:
connect(View view) führt hierhin:
Die DownloadContent()-Klasse sieht so aus, da ist auch mein Problem:
Das ist ein Beispiel von developer.android.com, was ich gerade zu verstehen versuche. Mein Problem ist nun, dass die Ausführung nur bis zum Eintritt in den try-Block geht. Das URL-Objekt in dieser Klasse wird nicht erstellt (ich teste den Ablauf mit LogCat) und ich erkenne nicht, weshalb.
Ich hoffe, jemand mag mir helfen oder mir Tips geben. Ich bin auch dankbar für gänzlich andere Möglichkeiten als das, was ich hier bisher habe. Danke dafür
Grüße,
Nanika
momentan bin ich dabei, eine App zu entwickeln, mit der ich einige Probleme habe. Ich bin absolute Anfängerin in der App-Entwicklung und hoffe, dass ihr mir helfen möchtet
Also, meine App soll erstmal einfach nur eine Verbindung zu einer Webseite aufbauen und ein Bild runterladen (Bild runterladen ist noch nicht mit drin, ich habe zu meinem Verständnis erstmal nur ein Beispiel übernommen). Dazu habe ich bisher das hier:
Code:
...
public class MainActivity extends Activity {
...
public void connect(View view) {
Intent intent = new Intent(this, ConnectToServer.class);
EditText url = (EditText) findViewById(R.id.url);
String urlString = url.getText().toString();
intent.putExtra(URL, urlString);
startActivity(intent);
}
}
Code:
...
public class ConnectToServer extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String url = intent.getStringExtra(MainActivity.URL);
TextView textView = new TextView(this);
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Log.d(url, "connected");
new DownloadContent().execute(url);
} else {
textView.setText("No network connection available.");
}
}
...
}
Code:
package com.example.test2;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.AsyncTask;
import android.util.Log;
public class DownloadContent extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... urls) {
try {
return getUrl(urls[0]);
} catch (IOException e) {
return "Cannot reach URL";
}
}
private String getUrl(String urls) throws IOException {
InputStream inputStream = null;
int length = 500;
try {
URL url = new URL(urls);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(11000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
int response = conn.getResponseCode();
Log.d(urls, "The response is: " + response);
inputStream = conn.getInputStream();
String content = readInputStream(inputStream, length);
return content;
} finally {
if (inputStream != null) {
inputStream.close();
}
}
}
public String readInputStream(InputStream stream, int length) throws IOException, UnsupportedEncodingException {
Reader reader = null;
reader = new InputStreamReader(stream, "UTF-8");
char[] buffer = new char[length];
reader.read(buffer);
return new String(buffer);
}
}
Ich hoffe, jemand mag mir helfen oder mir Tips geben. Ich bin auch dankbar für gänzlich andere Möglichkeiten als das, was ich hier bisher habe. Danke dafür
Grüße,
Nanika
Zuletzt bearbeitet: