2012-06-28 82 views
1

我正在製作一個應用程序,它讀取網站的某個部分並將其張貼到屏幕上。該應用程序目前在我的android模擬器中工作,但是當我將它傳輸到我的galaxy S2時,它似乎根本沒有訪問該網站。Android:互聯網在模擬器中工作,但不在我的手機上

package com.example.beam; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.URL; 
import java.net.URLConnection; 
import java.util.Scanner; 

import org.apache.http.HttpResponse; 
import org.apache.http.client.*; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.BasicResponseHandler; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.protocol.BasicHttpContext; 
import org.apache.http.protocol.HttpContext; 
import org.apache.http.util.EntityUtils; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.support.v4.app.NavUtils; 

public class MainActivity extends Activity { 

String current = null; 
Button check; 
TextView text; 
TextView url; 
String[] lines = new String[12]; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



    check = (Button) findViewById(R.id.checkstatus); 
    text = (TextView) findViewById(R.id.textView1); 
    url = (TextView) findViewById(R.id.url); 

    String[] lines = new String[12]; 

    check.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      // Attempt to the read the source from a website. 
      String bodyHtml = "null"; 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new  HttpGet("http://www.spring8.or.jp/ext/ja/status/text.html"); 
      ResponseHandler<String> resHandler = new BasicResponseHandler(); 

      try { 
       bodyHtml = httpClient.execute(httpGet, resHandler); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      double current = 0; 
      try{ 
      String derp = bodyHtml.substring(bodyHtml.lastIndexOf("mA") - 5, bodyHtml.lastIndexOf("mA")); 
      current = Double.parseDouble(derp); 
      } 
      catch(Exception e){ 

      } 
      url.setText(current + " mA"); 


     } 
    }); 
} 

}

道歉,如果編碼是有點差,亂,我很新的這一切。我如何解決這個問題?謝謝

此外,我敢肯定我已經在清單中正確設置權限。

+0

請發佈logcat。 –

回答

1

試試這個....

它是一個很好的做法,以保持對UI線程和非UI線程非UI的工作界面的工作,不過成爲從蜂巢Android版本的發佈一個 ....這可能會導致錯誤。

所以,你可以做以下....

  1. 執行HTTP運行在一個單獨的線程,然後將使用處理器 UI中的值,處理器保持線程的引用它被創建。

  2. 您可以使用的AsyncTask這是專門爲Android做 UI和非UI線程之間的同步。

注:

請檢查AndroidManifest上網權限,雖然我知道你已經做到了,導致應用程序運行在模擬器上....但在再次檢查它still..no危害。

+0

謝謝,我在互聯網上找到了一個使用AsyncTask的例子,它工作正常! – user1147964

相關問題