0

在我的应用程序中,我需要每 30 分钟显示一次 Current Lcoation。为了实现这一点,我使用 Timer 每 30 分钟触发一次。

它在 HTC Wildfire S、Sony Xperia V 等一些 android 设备中运行良好……但在三星 S Duos 和 HTC One X 中无法运行……因为当我请求 GPS 时,它返回 NULL 作为当前位置值。我不知道为什么这些设备不支持我的应用程序,任何人都可以提供专业的帮助。

4

1 回答 1

0

您应该像这样检查提供者的可用性:

List<String> providers = locationManager.getProviders(true);

然后你开始收听可用的传感器:

if (providers.contains(LocationManager.GPS_PROVIDER))
{
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,...);
}

如果您想要的传感器不可用,您应该向用户弹出一个对话框,要求他激活 GPS,或者您想要什么。

另外,我有一个建议给你:你不应该开始请求位置更新Timer,你应该传递到requestLocationUpdates()你想要位置更新的最短时间和距离。

于 2013-01-29T11:40:01.107 回答