Bộ mã hóa địa lý hoạt động tốt cho đến ngày hôm nay. Nó bắt đầu trả về String với độ dài là 0. Lưu ý: Đây không phải là bản sao của chủ đề Geocoder, tôi đã sử dụng dịch vụ ý định và AsyncTask để nhận nó trước khi bắt đầu chuỗi (và cách tiếp cận AsyncTask hoạt động tốt hơn 8 tháng), đã kiểm tra this code và mới code từ Google với FusedLocationProviderClient (đây là chính thức code) nó cũng trả về chuỗi có độ dài bằng 0. This link từ trang chính thức của Android cho biết cách thực hiện nó với dịch vụ có mục đích.Bộ mã hóa địa lý trả lại địa chỉ có độ dài bằng không
Tôi nhận được địa chỉ đầy đủ trên Android 5.1 nhưng trên Android 7.1, nó trả về địa chỉ có độ dài bằng không.
Mã tôi đã sử dụng và hoạt động tốt cho đến hôm nay.
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();
}
trả lời là thêm =
để cho vòng lặp để không truy xuất một địa chỉ với số không dài trên Android 7. Bạn không cần phải làm điều này trên một số phiên bản. Ngoài ra mã trên các trang Github được Google tham chiếu bị thiếu =. Đó là lý do tại sao tôi không thể tìm ra lý do tại sao.
Vâng, = là những gì nên được bổ sung nhưng nó hoạt động nếu phiên bản Android không phải là 7. Nó rất thú vị. Bất cứ ai có thể giải thích lý do tại sao nó hoạt động trên nếu phiên bản không phải là Anroid 7? – Thracian
Lỗi tương tự được tìm thấy trong một thiết bị chạy 5.1.1 – Kennet
Yeap đã hoạt động. Thật là một thay đổi kỳ lạ trong API của họ. –