在我的应用程序中,我需要每30分钟显示一次Current Lcoation。为了实现这一点,我使用Timer每30分钟触发一次。
它在HTC Wildfire S,Sony Xperia V等一些Android设备上运行良好... 但它不适用于三星S Duos和HTC One X ...因为当我请求GPS它返回NULL作为当前位置值。我不知道为什么设备不支持我的应用程序可以任何人帮助profe。
答案 0 :(得分:0)
您应该检查提供商的可用性,如下所示:
List<String> providers = locationManager.getProviders(true);
然后你开始听可用的传感器:
if (providers.contains(LocationManager.GPS_PROVIDER))
{
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,...);
}
如果您想要的传感器不可用,您应该向用户弹出一个对话框,要求他激活GPS,或者你想要的。
此外,我向您推荐:您不应该使用Timer
开始请求位置更新,您应该将requestLocationUpdates()
传递给最短时间&amp;您希望位置更新的距离。