[英]How to enable GPS Location on Kotlin?
My Program is display dialog only but my Gps Location is not enabled this is my code look like我的程序只是显示对话框,但我的 Gps 位置未启用这是我的代码看起来像
*Ignore this text line. *忽略此文本行。 This text line is for approval purpose only to post this question.此文本行仅用于发布此问题的批准目的。 thanks for answering this question.感谢您回答这个问题。 have a nice day:) *祝你今天过得愉快:) *
this is my home Initialize这是我的家
private fun homeInit() {
btn_create_order.setOnClickListener {
if (isPermissionsAllowed()) {
val pickupLocation = Intent(this, PickupOrderActivity::class.java)
startActivity(pickupLocation)
}
else{
askForPermissions()
}
}
}
And this is the permission这是许可
private fun isPermissionsAllowed(): Boolean {
return ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED
}
private fun askForPermissions(): Boolean {
if (!isPermissionsAllowed()) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this as Activity,Manifest.permission.ACCESS_FINE_LOCATION) &&
ActivityCompat.shouldShowRequestPermissionRationale(this as Activity,Manifest.permission.ACCESS_COARSE_LOCATION) &&
ActivityCompat.shouldShowRequestPermissionRationale(this as Activity,Manifest.permission.ACCESS_BACKGROUND_LOCATION) ) {
} else {
ActivityCompat.requestPermissions(this as Activity,arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),PERMISSION_REQUEST_CODE)
}
return false
}
return true
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
when (requestCode) {
PERMISSION_REQUEST_CODE -> {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission is granted, you can perform your operation here
val createOrder = Intent(this, PickupOrderActivity::class.java)
startActivity(createOrder)
} else {
// permission is denied, you can ask for permission again, if you want
showPermissionDeniedDialog()
}
return
}
else -> {
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
}
And this is the Dialog这是对话框
private fun showPermissionDeniedDialog() {
AlertDialog.Builder(this)
.setTitle("Permission Denied")
.setMessage("Permission is denied, Please allow permissions from App Settings.")
.setPositiveButton("App Settings",
DialogInterface.OnClickListener { dialogInterface, i ->
val intent = Intent()
intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
val uri = Uri.fromParts("package", packageName, null)
intent.data = uri
startActivity(intent)
})
.setNegativeButton("Cancel", null)
.show()
}
You can use fused location For Enabling GPS and get the user location.您可以使用融合位置来启用 GPS 并获取用户位置。
Official Documentation https://developer.android.com/training/location官方文档https://developer.android.com/training/location
Code Example: https://github.com/ideeastudios/android-fused-location-provider-example代码示例: https://github.com/ideeastudios/android-fused-location-provider-example
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.