0

次のコードは、私の最初のインターネットアプリからのものです。使用できるWLANがないため、テストしていません。次にやりたいのは、ウェブサイトからデータを取得することです。

そのようなタスクを達成するために従うべき手順はありますか?

JAVAコード:

public class Internet00 extends Activity {

TextView tv00;
public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netWorkinfo = cm.getActiveNetworkInfo();

    if (netWorkinfo != null && netWorkinfo.isConnected()) {
        return true;
    }
    return false;
}
private void readStream(InputStream in) {
    BufferedReader reader = null;
    try {
        reader = new BufferedReader(new InputStreamReader (in));
        String line="";
        while ( (line=reader.readLine()) != null)
            tv00.setText(line);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
          try {
            reader.close();
          } catch (IOException e) {
            e.printStackTrace();
            }
        }
    }
}
@SuppressLint({ "ParserError", "NewApi" })
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_internet00);

    tv00 = (TextView) findViewById(R.id.tv00);
    if(isNetworkAvailable()) {
        StrictMode.ThreadPolicy policy = new StrictMode.
            ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);

    try {
          URL url = new URL("http://www.vogella.com");
          HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
          readStream(con.getInputStream());
        } catch (Exception e) {
          e.printStackTrace();
           }
        }
    }
}
4

2 に答える 2

0

はい、もちろん、いくつかのルールに従う必要があります。

  1. UIスレッドでネットワークスレッドを使用しないでください
  2. AsyncTask関連作品のダウンロードに使用

実用的な例はここにあります:JSONを使用してAPIから情報を取得する

サーバーからデバイスにデータをダウンロードするには、上記の投稿の私の回答を参照してください。この実用的な例は、あなたにとって良いスタートになるでしょう。

于 2012-09-13T10:22:09.303 に答える
0

もう少し具体的に教えていただけますか?

すでにデータを取得しているように見えます。

UIスレッドでネットワーク処理を行っているため、コードは失敗するはずです。

于 2012-09-13T10:18:36.643 に答える