本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtube 频道。另外,想追踪更多相关技术资讯,欢迎到 脸书粉丝专页 按赞追踪喔~
范例名称:检查GPS状态
开发人员:HKT (侯光灿)
程序语言:Kotlin
开发环境:Android Studio 4.1.2 & Android 11 & Kotlin 1.4.30
授权范围:使用时必须注明出处且不得为商业目的之使用
范例下载点:点我下载
昨天跟大家介绍,如何获取到定位权限之後,今天要来跟大家介绍,如何检查 GPS 是否开启,在装置未开启 GPS 的状态下,我们可以引导使用者前去装置设定页开启。若已经是开启装态,则可以开始获取经纬度。而如何获取经纬度的部分,会留在明天再继续跟大家介绍。今天主要会关注在,如何检查 GPS 是否开启。
透过 LocationManager 其中的 isProviderEnabled 方法来检查GPS是否开启,若未开启,则弹跳出询问视窗,引导使用者前往设定开启。若已经开启,则可以开始获取经纬度。
private fun checkGPSState() {
val locationManager = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
AlertDialog.Builder(mContext)
.setTitle("GPS 尚未开启")
.setMessage("使用此功能需要开启 GSP 定位功能")
.setPositiveButton("前往开启",
DialogInterface.OnClickListener { _, _ ->
startActivityForResult(
Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), REQUEST_ENABLE_GPS
)
})
.setNegativeButton("取消", null)
.show()
} else {
//todo getDeviceLocation()
Toast.makeText(this, "已获取到位置权限且GPS已开启,可以准备开始获取经纬度", Toast.LENGTH_SHORT).show()
}
}
在前往设定页上,我们有加入 REQUEST_ENABLE_GPS ,所以在设定返回时会收到 callBcak 事件。这个时候我们再去检查 GPS 状态是否开启。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
...
REQUEST_ENABLE_GPS -> {
checkGPSState()
}
}
}
HKT 线上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
那今天【iThome 铁人赛】就介绍到这边罗~
顺带一提,KT 线上教室,脸书粉丝团,会不定期发布相关资讯,不想错过最新资讯,不要忘记来按赞,追踪喔!也欢迎大家将这篇文章分享给更多人喔。
我们明天再见罗!!!掰掰~
<<: Day 24 Azure machine learning: deploy service and inference- 模型训练完就是要拿来用啊
>>: @Day24 | C# WixToolset + WPF 帅到不行的安装包 [87分帅的设定页面]
REST API Versioning 本来对API分版号有个大概的印象,不外乎是逻辑、res 有了...
痛点用在很多应用场景,在叙述使用者经验时,就是在替代用户在使用上不满,或是离开产品服务的关键要点。现...
-零假设和替代假设(来源:PrepNuggets) 原假设和替代假设(Null and Alter...
在程序中可以使用traceback 或try ... exception 的方式去做各种例外事件的拦...
之前在贪婪演算法的文章中有提到,现实生活中并不是所有问题都能用演算法快狠准地解决,有些困难的问题只有...