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