これは私の最初のスレッドですので、ご容赦ください。:)
Web サイトで特定の文字列を検索する Android サービスを作成したいと考えています。これを行うために、そのサイトをダウンロードして html コード内を検索しようとしましたが、ダウンロードしようとするとアプリケーションが常にクラッシュします。
これを行う方法を知っている人はいますか?
前もって感謝します
映画情報のために imdb.com をスキャンする Android アプリの作成を開始したとき、私は同様の問題を抱えていました。多くのインターネットを検索して物事をテストした後、私はこれを思いつきました:
import java.net.*;
import java.io.*;
URL url = new URL("websiteToLookAt");
InputStreamReader isr = new InputStreamReader(url.openStream());
BufferedReader bufferedReader = new BufferedReader(isr);
String lineThatIsBeingRead = null;
String theString;
while((lineThatIsBeingRead = bufferedReader.readLine()) != null){
if(lineThatIsBeingRead.contains("StringYouAreLookingFor")){
theString = lineThatIsBeingRead;
break;
}
}
String myName = "john";
かどうかをテストする場合myName.contains("oh");
)いくつかの文字列を探していたので、そこに変数theStringがありますが、1 つの文字列だけを見つける必要がある場合は、6 行目と 11 行目を削除し、探している文字列を割り当てる文字列としてlineThatIsBeingReadを使用できます。
心に留めておくべきもう1つのことは、JavaはUIスレッドを介してインターネットに接続することを許可していないことです(Javaがあなたにそれを望んでいる方法は意図的であるため、アプリを公開するときはこれを取り出して実行することを忘れないでください意図的に)。しかし、追加すると
if(BuildVERSION.SDK_INT >= 9){
StrickMode.ThreadPolicy Policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(Policy);
}
onCreate() メソッドに追加すると、そのルールがバイパスされます。
これがお役に立てば幸いです。プロジェクトの成功を祈っています。