android - 具有当前位置的 Location 实例
问题描述
在我的程序中,我想获取一个字符串,其中包含与手机上的位置相对应的城市名称。我有地理编码器代码:
class LocationData : LocationDataInterface{
var result: String = ""
override fun getAdreesTown(location: Location, context: Context): String {
val thread = Thread(
Runnable {
val geocoder = Geocoder(context, Locale.getDefault())
try{
var list: List<Address> = geocoder. getFromLocation(location.getLatitude(), location.getLongitude(), 1)
if(list != null && list.size > 0){
var address : Address = list.get(0) as Address
result = "${address. getAddressLine(0)} , ${address.getLocality()}"
}
}catch(e: IOException){
Log.d("Egor", "Подключение к геокодеру не установлено: $e.message")
}
}).run()
thread.start()
return result
}
}
请求位置的权限在 Manifest 中指定:
<uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION"/>
我的问题是我不知道如何获取具有当前位置的 Location 对象以传递给 Geocoder。我尝试了不同的选项(例如,fusedLocationClient),但没有任何效果。
class MainActivity : AppCompatActivity(), DataProcessingCallback {
\\
lateinit var locationData: LocationDataInterface
\\
override fun onCreate(savedInstanceState: Bundle?) {
locationData = LocationData()
val e = locationData.getAdreesTown(Location(LocationManager.NETWORK_PROVIDER), this)
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
fusedLocationClient.lastLocation.addOnSuccessListener { location : Location? ->
locationNow = location
}
val e = locationData.getAdreesTown(location, this)
如何使用当前位置创建位置对象?
解决方案
推荐阅读
- react-i18next - react-i18next 输出中的 HTML 注释
- css - 如何在 tsx css styled-components 中声明变量?
- c++ - C++ 根据运行时参数返回不同的派生模板类
- go - Google Translation API WithAPIKey 选项错误
- javascript - 将迭代对象作为输入传递给 html 内联定义的 onclick 函数
- unity3d - 为玩家 Unity 和 Photon 添加名称
- android - 在使用 Jetpack Compose 的导航组件时,由可组合项表示的弹出屏幕(从“回栈”)返回到上一个屏幕?
- apollo-angular - 带有graphql subscribeTo的离子角度更多
- python - 如何在一个主进程中生成服务器和客户端子进程并确保服务在客户端请求之前可用?
- html - 点可以在 html 中响应吗?