【发布时间】:2011-03-17 18:37:51
【问题描述】:
我一直在开发一个将手机的 GPS 位置通过电子邮件发送给用户的应用程序,手机发送当前位置非常重要,而不是不久前的位置。
我尝试了一些修复,例如更改 minTime 和 minDist,以及在完成后删除(或不删除)侦听器。不过,此应用程序只能在特定时间使用,而且我希望尽可能减少电池使用量,因此让它继续运行并不是一个好的选择。
如果我将 minTime 设置为少量,并且从未删除 LocationListener,我很幸运能进行一些更新,在这种情况下,我发送的第二条消息将被更新,但除此之外......
这让我觉得我需要给它更多时间来确定获取 GPS 位置 - 但我将如何强制它这样做呢?
考虑到这一点,我一直在尝试这个sn-p:
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub } }; lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, (long)(.000001), (float)(0), locationListener); String s = ""; SimpleDateFormat timingFormat = new SimpleDateFormat("hh:mm"); timingFormat.format(new Date()); s += "The current time according to the clock is: " + timingFormat.format(new Date()) + "\n"; Location location = lm .getLastKnownLocation(LocationManager.GPS_PROVIDER); lm.removeUpdates(locationListener);(返回字符串,添加地址)
【问题讨论】: