#android #android-studio #google-maps #kotlin #reverse-geocoding
#Android #android-studio #google-карты #kotlin #обратное геокодирование
Вопрос:
Это мой код :
val btnbymap = mycustomview.findViewById<Button>(R.id.edit_by_map)
btnbymap.setOnClickListener {
if (ContextCompat.checkSelfPermission(
requireContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION
) !=
PackageManager.PERMISSION_GRANTED
amp;amp; ContextCompat.checkSelfPermission(
requireContext(),
android.Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
this.requestPermissions(
arrayOf(
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
), RequestCode
)
} else {
fusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(vl.context)
fusedLocationProviderClient.lastLocation.addOnSuccessListener(requireActivity()) {
if (it != null) {
val latitude: Double = it.latitude
val longitude: Double = it.longitude
val geocoder = Geocoder(this.context, Locale.getDefault())
try {
val address : List<Address> =
geocoder.getFromLocation(latitude, longitude, 1)
val adress1 = address[0].countryName
Toast.makeText(this.context, adress1.toString(), Toast.LENGTH_LONG).show()
} catch (e: Exception) {
Toast.makeText(
this.context,
"can't handle this",
Toast.LENGTH_SHORT
)
.show()
}
} else {
Toast.makeText(context, "can't find location", Toast.LENGTH_SHORT)
.show()
}
}
}
}
}
return vl
}
override fun onRequestPermissionsResult(
requestCode: Int, permissions: Array<String>,
grantResults: IntArray
) {
when (requestCode) {
1 -> {
if (grantResults.isNotEmpty() amp;amp; grantResults[0] ==
PackageManager.PERMISSION_GRANTED
) {
if ((ContextCompat.checkSelfPermission(
requireContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION
) ==
PackageManager.PERMISSION_GRANTED)
) {
Toast.makeText(context, "Permission Granted", Toast.LENGTH_SHORT).show()
}
} else {
Toast.makeText(context, "Permission Denied", Toast.LENGTH_SHORT).show()
}
return
}
}
}
}
Я хочу использовать геокодер для получения адреса из LatLngn (Координаты).
когда я использую этот метод (geocoding_reverse), эмулятор Android studio возвращает мне адрес (название страны), но на моем реальном устройстве метод catch возвращает (не может справиться с этим).
почему, когда я использую эмулятор, метод try сработал, но на реальном устройстве переходит к методу catch.
где из моих кодов неверно?
как я могу с этим справиться? tnk продвигается
Комментарии:
1. ну, что вам говорит фактическая ошибка?
2. в не выдает мне ошибку. на самом деле не сработало хорошо. он должен быть направлен на метод try, но переходит в метод catch.
3. он переходит в блок catch, что означает ошибку, прочитайте, что такое исключение
4. «не удается обработать это» измените на «Исключение: » e.GetMessage().
5. я только что отладил API, а не выпустил. может быть, это моя проблема?