Gå til innhold

Eclipse - Android - Hvordan få internett tilgang!


Anbefalte innlegg

Videoannonse
Annonse

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

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

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 av etse
Lenke til kommentar

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 av - mOtz^ -
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...