- mOtz^ - Skrevet 12. mai 2012 Del Skrevet 12. mai 2012 Skal hente ned et xml-dokument, for så å parse dette dokumentet! Men det virker som om programmet ikke får tilgang til internett gjennom macen. Hvordan setter jeg opp dette i eclipse? Lenke til kommentar
etse Skrevet 12. mai 2012 Del Skrevet 12. mai 2012 Fint med litt bedre forklaring. Er det android-emulatoren som ikke får tilgang til internett når du prøver å teste appen din? Om du utvikler på >4.0 av android er det viktig at alle funksjoner som skal bruke nettverk kjører i en annen tråd enn hoved-tråden til appen din. Ellers vil det ikke fungere. Lenke til kommentar
- mOtz^ - Skrevet 12. mai 2012 Forfatter Del Skrevet 12. mai 2012 Okay Først har jeg følgt denne tutorialen: http://www.javacodeg...arsing-xml.html Men metoden parsePeopleResponse returnerer bare ett null objekt. Jeg fant også en metode: public boolean isNetworkAvailable() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); // if no network is available networkInfo will be null // otherwise check if we are connected if (networkInfo != null && networkInfo.isConnected()) { return true; } return false; } og denne returnerer false. Derfor lurer jeg på om selve androidprogrammet får tilgang til internett gjennom eclipse? Utvikler for 7.0. Men hvis jeg skal kjøre alle prosessene i en annen tråd, bør jeg vel extende XMLParser med Thread? Lenke til kommentar
etse Skrevet 12. mai 2012 Del Skrevet 12. mai 2012 (endret) Det du burde gjøre er å kjøre nettverket som laster ned filen som en egen service, for så å ha en callback-funksjon som blir kalt når den er ferdig med å laste ned filen. Lag en klasse som skal laste ned XML-filen, kaller denne "XMLDownloader" som extender "IntentService". Når jeg implementerte dette så jeg på følgende side: http://stackoverflow.com/questions/3197335/restful-api-service Første svaret det gir et godt svar med eksempler Endret 12. mai 2012 av etse Lenke til kommentar
- mOtz^ - Skrevet 12. mai 2012 Forfatter Del Skrevet 12. mai 2012 (endret) Takk for godt svar! Jeg vil se nøyere igjennom linken du ga meg litt senere. Men har jeg laget XMLDownload klassen: package no.sg; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import org.apache.http.util.ByteArrayBuffer; import android.util.Log; public class XMLDownloader { private final String PATH = "/data/data/no.sg/"; public String DownloadFromUrl(String fileUrl) { //this is the downloader method try { URL url = new URL(fileUrl); File file = new File(PATH); /* Open a connection to that URL. */ URLConnection ucon = url.openConnection(); /* * Define InputStreams to read from the URLConnection. */ InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); /* * Read bytes to the Buffer until there is nothing more to read(-1). */ ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = 0; while ((current = bis.read()) != -1) { baf.append((byte) current); } /* Convert the Bytes read to a String. */ FileOutputStream fos = new FileOutputStream(file); fos.write(baf.toByteArray()); fos.close(); return file.toString(); } catch (IOException e) { Log.d("XMLDownloader", "Error: " + e); } return ""; } } Når jeg kjører debug mode, så feiler koden ved InputStream is = ucon.getInputStream(); og hopper da til catch. Får da en unknownHostException Endret 12. mai 2012 av - mOtz^ - Lenke til kommentar
Sokkalf™ Skrevet 13. mai 2012 Del Skrevet 13. mai 2012 Du må ha følgende i AndroidManifest.xml for at appen din skal få tilgang til internett: <uses-permission android:name="android.permission.INTERNET" /> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå