gpt4 book ai didi

android - 地理编码器返回长度为零的地址

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:30 26 4
gpt4 key购买 nike

Geocoder 直到今天都运行良好。它开始返回长度为 0 的字符串。注意:这不是 Geocoder 线程的副本,我在启动线程之前使用 intent service 和 AsyncTask 获取它(AsyncTask 方法在 8 个月内运行良好),已检查 this code和新code来自谷歌的 FusedLocationProviderClient(这是官方代码)它还返回长度为零的字符串。 This link来自 Android 官方页面显示了如何通过 Intent 服务获取它。

我在 Android 5.1 上获得完整地址,但在 Android 7.1 上它返回一个长度为零的地址。

直到今天,我一直在使用并且运行良好的代码。

private void getAddressFromCoordinates() {

new AsyncTask<Void, String, Void>() {

@Override
protected Void doInBackground(Void... params) {

try {
addresses.clear();
addresses.addAll(geocoder.getFromLocation(mCurrentLocation.getLatitude(),
mCurrentLocation.getLongitude(), 1));


} catch (IOException e) {
e.printStackTrace();
showToastAsync(getString(R.string.activity_loc_no_location_info));
} catch (IllegalArgumentException illegalArgumentException) {
// Catch invalid latitude or longitude values.
showToastAsync("Invalid latitude or longitude values");
}

// Handle case where no address was found.
if (addresses == null || addresses.size() == 0) {
showToastAsync(getString(R.string.activity_loc_no_address_is_found));
} else {
Address address = addresses.get(0);
ArrayList<String> addressFragments = new ArrayList<String>();
for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
addressFragments.add(address.getAddressLine(i));
}

addressInfo = TextUtils.join(System.getProperty("line.separator"), addressFragments);
addressSingleLine = LocationActivity.addressInfo.replaceAll("[\r\n]+", " ");
}
return null;
}

}.execute();
}

答案 是将 = 添加到 for 循环中,以便在 Android 7 上不检索长度为零的地址。您不需要在某些版本上执行此操作。 Google 引用的 Github 页面上的代码也丢失了 =。这就是为什么我找不到原因。

最佳答案

问题是这一行:

for (int i = 0; i < address.getMaxAddressLineIndex(); i++)

它必须是:for (int i = 0; i <= address.getMaxAddressLineIndex(); i++)因为 getMaxAddressLineIndex 返回最大的索引。

关于android - 地理编码器返回长度为零的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45208116/

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