【发布时间】:2010-08-27 17:21:17
【问题描述】:
我正在开发一个需要知道用户位置的位置感知应用程序。 问题是应用程序似乎无法正常工作。
正确地说,我的意思是每次我必须先打开应用程序(如心肺训练器)以获得 GPS 信号然后运行我的程序,否则通知栏上的 GPS 图标会闪烁,就像它在设备尝试获取 GPS 信号,但一段时间后它停止并且没有返回任何位置!
这真的很奇怪,因为它不应该停止,android提供GPS获取信号是否有间隔?
在文档中我没有找到任何相关内容。
我的代码如下:
lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, locationListenerGps);
LocationListener locationListenerGps = new LocationListener() {
public void onLocationChanged(Location location) {
locationResult.gotLocation(location);
Log.e("##################","MyLocation got GPS location accuracy:
"+location.getAccuracy()+" Altitute: "+location.getAltitude()+" log:
"+location.getLongitude()+" lat: "+location.getLatitude());
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
这应该打开 GPS 提供程序并注册一个名为 locationListenerGps 的侦听器,位置管理器将每 1 分钟或 10 米调用一次,对吗?
为什么我必须先打开 heartTrainer 才能获得 GPS 信号?
【问题讨论】:
-
你有 ACCESS_FINE_LOCATION 权限吗?
-
是的,我拥有所需的所有权限,如果我不这样做,就会抛出异常。这可能是由唤醒锁定问题或与位置管理器无关的其他原因引起的吗?
-
你是如何初始化你的 lm 变量的?
-
我正在使用以下代码对其进行初始化:lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
标签: android