gpt4 book ai didi

java - 我在 Android 应用程序上获取当前位置时做错了什么

转载 作者:行者123 更新时间:2023-12-01 19:12:55 26 4
gpt4 key购买 nike

我正在尝试通过 GPS 获取我当前的位置,但似乎没有任何效果,我在这里遵循了很多问题,但收效甚微...

这是我的代码:

private GeoPoint getActualPosition()
{
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

Location current = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

actualLat = (int)(current.getLatitude()*1E6);
actualLong = (int)(current.getLongitude()*1E6);

GeoPoint point = new GeoPoint(actualLat, actualLong);

return point;
}

现在,该方法的“this”部分(在 requestLocationUpdates 上)引用实现 LocationListener 接口(interface)的 Activity ,其中其 onLocationChanged 方法是:

@Override
public void onLocationChanged(Location location) {
actualLat = (int)(location.getLatitude()*1E6);
actualLong = (int)(location.getLongitude()*1E6);

}

我的问题出在当前位置行上,其中“当前”始终为空,我找不到原因。

我的 list 具有所需的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

所以我真的不知道我的代码出了什么问题。

感谢您的宝贵时间!!

最佳答案

getLastKnownLocation() 返回最后一个缓存位置。如果没有这样的位置将返回 null(例如,如果手机已关闭)如果提供程序当前已禁用,则返回 null

获得 GPS 定位需要时间。 onLocationChanged() 只有在得到正确的修复后才会被调用,这个时间可能从 20 秒到几分钟不等。

只有在至少调用一次onLocationChanged()之后,getLastKnownLocation()才会返回最后一个有效位置。

关于java - 我在 Android 应用程序上获取当前位置时做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com