Ниже мой код, я всегда получаю нулевое значение subLocality ....

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses  = geocoder.getFromLocation(latitude,longitude, 1);

String suburb = addresses.get(0).getSubLocality();
String state = addresses.get(0).getAdminArea();
String zip = addresses.get(0).getPostalCode();
String country = addresses.get(0).getCountryName();

Log.e("Log for data",""+suburb+" "+state+" "+zip+" "+country);

Ниже мой ответ;

null Gujarat 380006 India
8
Vishal Vaishnav 8 Май 2019 в 14:04

2 ответа

Лучший ответ

Geocoder API вернет значения в зависимости от lat long, если в базе данных API эти значения не указаны, например: subLocality, тогда только return null, насколько я знаю, вы ничего не можете с этим поделать. Вы должны обрабатывать эти случаи изящно, чтобы ваше приложение не зависало.

Обработка этих случаев включает в себя необходимость поставить проверку, используя условие if, если конкретное значение равно null или имеет какое-то значение, потому что, если вы используете какое-либо значение в коде без проверки, и если это значение is null, тогда приложение может аварийно завершить работу, когда появится конкретное значение null

3
ismail alaoui 16 Май 2019 в 17:49

У меня тоже была такая же проблема, которая была решена путем увеличения количества результатов, которые вы запрашиваете у Geocoder API.

Попробуйте увеличить его до 10

List<Address> addresses  = geocoder.getFromLocation(latitude,longitude, 10);

Тогда, если ваша подобласть пуста с результатом first, попробуйте поискать в остальных из них то же самое

0
Veeresh Charantimath 12 Авг 2019 в 05:12