问题描述
这是我的代码:
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
&& 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() && 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处于先进状态
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)