如何从 setMyLocationEnabled(true) 获取当前位置的地址;

How to get address from current location from setMyLocationEnabled(true);

在我的项目中,我使用了 Google 地图 Activity 并且为了获取用户的当前位置,我使用了 setMyLocationEnabled(this); 方法来获取位置.当我试图从该位置获取纬度和经度时,它会抛出一个错误,提示空对象引用。

我在 YouTube 上查找了很多视频,并检查了堆栈溢出和博客中的许多问题,但我找不到合适的代码来完成这些。有些使用已弃用的方法,有些则超出了主题范围。

所以我只想进行反向地理编码以从我的位置获取地址并在该点添加标记。

帮助我指导做什么以及如何获得过去 4 天我一直坚持的东西。

反向地理编码正是您要找的。 地理编码器 class可以使用 看看这个Android: Reverse geocoding - getFromLocation

它将让您了解如何使用反向地理编码

您可以使用 getFromLocation from Geocoder.

示例代码。

Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
    List<Address> addressList = geocoder.getFromLocation(
            latitude, longitude, 1);
    if (addressList != null && addressList.size() > 0) {
        Address address = addressList.get(0);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
            sb.append(address.getAddressLine(i)).append("\n");
        }
        sb.append(address.getLocality()).append("\n");
        sb.append(address.getPostalCode()).append("\n");
        sb.append(address.getCountryName());
        String result = sb.toString();
    }
} catch (IOException e) {
    Log.e(TAG, "Unable connect to Geocoder", e);
}