1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

http get request läuft nur im emulator

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von ImperatorPlebis, 19.07.2012.

  1. ImperatorPlebis, 19.07.2012 #1
    ImperatorPlebis

    ImperatorPlebis Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    10.07.2012
    Hallo,
    ich hab eine App geschrieben die einem anzeigt wann was im Kühlschrank abläuft(MHD) und was heute abläuft. Ausserdem kann man diese Produkte auf eine Einkaufsliste setzen. Ergänzend wollte ich nun, mehr als Spielerei, den Barcode scannen und über die open ean database mir den Produktnamen holen.

    Der folgende Code zur Abfrage der Datenbank macht das was er soll im eclipse Emulator, aber leider nicht auf dem handy. Dort krieg ich keine Ausgabe in den Textviews.

    Code:
    public class http_get_activity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_http_get_activity);
            
                TextView Textname = (TextView) findViewById(R.id.textView2);
                TextView Texterror = (TextView) findViewById(R.id.textView1);
                int x,zaehler;
                zaehler=0;
            
           try {
                HttpClient client = new DefaultHttpClient();  
                
              
                Texterror.setText("");
                Textname.setText("");
                
                String getURL = "http://openean.kaufkauf.net/?ean=4002468130097&cmd=query&queryid=200000000";
                HttpGet get = new HttpGet(getURL);
                HttpResponse responseGet = client.execute(get);  
                HttpEntity resEntityGet = responseGet.getEntity();  
                BufferedReader reader = null;
                
                if (resEntityGet != null) {  
    
                            InputStream is = resEntityGet.getContent() ;
                            reader = new BufferedReader(new InputStreamReader(is));
                            String line = "";
                            while ((line = reader.readLine()) != null) {
                              System.out.println(line);
                              
                              String[] result = line.split("=");
                             
                              
                              x=0;
                              
                                 while(x<result.length){
                                     if(result[0].equals("error")){
                                         Texterror.setText("error "+result[1]);
                                         
                                         } 
                                     if(result[0].equals("name")){
                                         if(zaehler == 0){
                                         Textname.setText("name "+result[1]);
                                         zaehler=1;}
                                         
                                         
                                         } 
                                     
                                     System.out.println(result[x]);
                                     x++;}
                            }
                           
                }        
                      
        } catch (Exception e) {
            e.printStackTrace();
        }    
           
        }}

    Vielleicht hat ja jemand eine Idee :)
     
  2. Kardroid, 20.07.2012 #2
    Kardroid

    Kardroid Android-Experte

    Beiträge:
    482
    Erhaltene Danke:
    80
    Registriert seit:
    03.10.2009
    Hi,

    hast du schon die Internetpermission gesetzt?
     
  3. ImperatorPlebis, 20.07.2012 #3
    ImperatorPlebis

    ImperatorPlebis Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    10.07.2012
    Hi
    ja "leider"
     
  4. ImperatorPlebis, 20.07.2012 #4
    ImperatorPlebis

    ImperatorPlebis Threadstarter Neuer Benutzer

    Beiträge:
    12
    Erhaltene Danke:
    0
    Registriert seit:
    10.07.2012
    auf Froyo lief es, auf ICS nicht und die Lösung war AsyncTask;)
    Wieder was gelernt
     
  5. swordi, 20.07.2012 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    Weil du Daten aus dem Netzwerk nicht im mainthread laxen darfst. Ab honeycomb gibt dafür eine exception.

    Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
     

Diese Seite empfehlen