私のAndroidアプリケーションでは、最初にGPS、GSMネットワーク、または設定画面から手動で入力されたテキスト値のいずれかを使用してユーザーの位置を取得します。
最初はGeocoderクラスを使用して、GPSまたはGSMによって提供される緯度と経度のユーザーロケールを取得しましたが、信頼性が低いようでした。現在、GoogleのWeb APIを使用して、HTTPリクエストを作成し、返されたXMLドキュメントを解析してロケールを取得しました。これは次のURLを使用しています。
http://maps.googleapis.com/maps/api/geocode/xmllatlng=blahblahlat,blahblahlong&sensor=true
ユーザーのロケールを取得した後、別のHTTPリクエストをfree.worldweatheronline.comのweather APIに送信し、返されたXMLを解析します。安定したインターネット接続があれば、アプリケーションは正常に動作しますが、私の家にはゴミの信号があり、さらに悪いモバイルデータ接続があります。
デバイスにモバイルデータ接続があるかどうかを確認する簡単な方法があることは知っていますが、接続があるときに問題が発生するときに信号強度を測定する方法があるかどうかを知りたいのですが、それもそうです正常に実行するには悪い。たとえば、0(信号なし)から100(完全な信号)までの値を返すモバイルデータ信号強度を取得する方法がある場合、信号強度が特定の量を超えている場合にのみ、位置情報と天気の取得を実行できます。 。
場所と天気の取得コードをtry/catchで囲んで、ランタイム例外が発生しないようにし、正常に失敗して、より適切な信号が取得されたときに更新できるようにするのが最善でしょうか?これを達成する方法に関するアイデア、または信号が悪いユーザーにとってアプリをより使いやすくするためのその他の提案はありますか?
前もって感謝します!