android 获取当前定位信息

android端没必要使用第三方地图的时候,可以直接使用 smart-location-lib 这个库:

https://github.com/mrmans0n/smart-location-lib      

kotlin代码自己可以改成java的

引入使用:

一、引入库:

implementation 'io.nlopez.smartlocation:library:3.3.3'

二、准备好使用的权限:

    <!-- 网络权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

  6.0以上动态权限的申请自行处理 ( https://www.jianshu.com/p/6e306729bb0d )

三、直接使用:

import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        SmartLocation.with(this).location()
                .start {
                    location ->
                    result.text = location.latitude.toString()
                    // 解析地址并显示 69
                    val geoCoder = Geocoder(this)
                    try {
                        val latitude = location.latitude
                        val longitude = location.longitude
                        val list = geoCoder.getFromLocation(latitude.toDouble(), longitude.toDouble(), 2)
                        for (i in list.indices) {
                            val address = list[i]
                            resultAddress.text  = address.countryName
                            Toast.makeText(this, address.countryName + address.adminArea + address.featureName, Toast.LENGTH_LONG).show()
                        }
                    } catch (e: IOException) {
                    }
                }
    }

 

上一篇:微信小程序--map路线规划


下一篇:JS编写定位笔记