PermissionX.init(this).permissions(Manifest.permission.ACCESS_FINE_LOCATION)
.request{ allGranted, deniedList, _ ->
if(allGranted){
LocationUtils.getInstance(this)!!.getLocation(object : LocationUtils.LocationCallBack {
override fun setLocation(location: Location?) {
if (location != null) {
longitude.text = "经度:" + location.longitude.toString()
latitude.text = "纬度:" + location.latitude.toString()
LocationUtils.getInstance(this@MainActivity)!!.getAddress(
location.latitude,
location.longitude
override fun setAddress(address: Address?) {
if (address != null) {
tv_address.text = """
国家:${address.countryName}
城市名:${address.locality}
周边信息:${
LocationUtils.getInstance(this@MainActivity)!!.getAddressLine(address)
""".trimIndent()
else{
Toast.makeText(this," You denied ${deniedList}",Toast.LENGTH_SHORT).show()
这里后面在使用在平板电脑安装应用发现无法获取位置,发现通过GPS定位获取位置需要有电话卡的手机才能运行
PermissionX是Android库的扩展,它使Android运行时权限请求变得非常容易。 您可以将其用于基本权限请求场合,也可以处理更复杂的条件,例如显示“基本原理”对话框或手动转到应用程序设置以获取津贴。
编辑您的build.gradle文件并添加以下依赖项。
dependencies {
implementation ' com.permissionx.guolindev:permissionx:1.4.0 '
就这样。 现在您可以开始了。
使用PermissionX来请求Android运行时权限非常简单。
例如。 如果要请求READ_CONTACTS,CAMERA和CALL_PHONE权限,请首先在AndroidManifest.xml中声明它们。
< manifest xmlns : android = " http://sch
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permissi...
基于android的定位无非就两种:network、gps。两者各有优劣。
GPS定位的好处:精确度高;坏处:仅能在户外使用,获取定位信息速度慢,耗费电池。
网络定位的好处:户内户外都...
下面是一些关于学习 Android 开发 (使用 Kotlin 语言) 的资源:
- Kotlin 官网 (https://kotlinlang.org/) 提供了学习 Kotlin 的基础知识和示例代码。
- Android 官网 (https://developer.android.com/) 提供了关于 Android 开发的详细指南和文档,并提供了 Kotlin 示例代码。
- Udacity 开发者课程 (https://www.udacity.com/courses/android) 提供了关于 Android 开发的课程,其中包括使用 Kotlin 的课程。
- 在线教育平台 Coursera (https://www.coursera.org/) 和 edX (https://www.edx.org/) 上有很多关于 Android 开发和 Kotlin 的课程。
- 开源项目 GitHub (https://github.com/) 上有很多关于 Android 和 Kotlin 的开源项目,可以帮助你更好地理解代码实现。
希望这些资源能帮助你学习 Android 和 Kotlin。