【发布时间】:2013-01-17 11:38:24
【问题描述】:
在我的 Android 应用程序中,我首先使用 GPS、GSM 网络或通过设置屏幕手动输入的文本值来获取用户位置。
起初我使用 Geocoder 类来获取 GPS 或 GSM 提供的经纬度的用户区域设置,但它似乎不可靠,现在我使用 Google 的 Web API 通过发出 HTTP 请求并解析返回的 XML 文档来获取区域设置.这是使用以下网址:
http://maps.googleapis.com/maps/api/geocode/xmllatlng=blahblahlat,blahblahlong&sensor=true
获得用户区域设置后,我向 free.worldweatheronline.com 的天气 API 发送另一个 HTTP 请求并解析返回的 XML。在稳定的互联网连接下,应用程序运行良好,但我家的信号很垃圾,移动数据连接更差。
我知道有一种简单的方法可以检查设备是否有移动数据连接,但是我想知道是否有一种方法可以测量信号强度,因为当有连接时出现问题,但是成功运行太糟糕了。例如,如果有一种方法可以获取从 0(无信号)到 100(全信号)的值的移动数据信号强度,那么我只能在信号强度高于一定量时进行位置和天气检索.
最好只用 try/catch 包围位置和天气检索代码,这样它就不会导致运行时异常,让它优雅地失败,然后在获得更好的信号时更新?关于如何实现这一点的任何想法,或任何其他建议以使我的应用程序对信号不佳的用户更友好?
提前致谢!
【问题讨论】:
标签: android geolocation gps gsm