is location detection required google play services android studio

220 Views Asked by At

I have built an app using location detection to get the current location I am using LocationManager and LocationLiastener

the app works fine but when I tried to run it on advice without android play service it won't get the current Location and show the following dialog enter image description here

this is the app link on Github https://github.com/mostafa-n3ma/Pcm-helper1.0

2

There are 2 best solutions below

1
مصطفى نعمه On BEST ANSWER

this is the problem

    private fun checkDeviceLocationSettingsAndGetLocationUpdates(resolve: Boolean = true) {
    val locationRequest = com.google.android.gms.location.LocationRequest.create().apply {
        priority = LocationRequest.QUALITY_LOW_POWER
    }
    val builder = LocationSettingsRequest.Builder().addLocationRequest(locationRequest)

    val settingsClint = LocationServices.getSettingsClient(requireActivity())
    val locationSettingsResponseTask = settingsClint.checkLocationSettings(builder.build())

    locationSettingsResponseTask.addOnFailureListener { exeption ->
        if (exeption is ResolvableApiException && resolve) {
            try {
                startIntentSenderForResult(
                    exeption.resolution.intentSender,
                    REQUEST_TURN_DEVICE_LOCATION_ON,
                    null,
                    0, 0, 0,
                    null
                )
            } catch (sendEx: IntentSender.SendIntentException) {
                Log.d(TAG, "Error geting location settings resolution: " + sendEx.message)
            }
        } else {
            Snackbar.make(
                this.requireView(),
                "Location services must be enabled to use the app", Snackbar.LENGTH_INDEFINITE
            ).setAction(android.R.string.ok) {
                checkDeviceLocationSettingsAndGetLocationUpdates()
            }.show()
        }

    }

    locationSettingsResponseTask.addOnCompleteListener {
        if (it.isSuccessful) {
            locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 0, 0.0f, locationListener
            )

        }
    }
   

}

I am using the google services library to check Location setting if it was enabled or not if the location is ON the location update request will be triggered

else it will ask the user to enable it and then trigger the location update request

if the services are not available nothing will happen and no location update will be requested

so I will try another way to check the location feature

1
Ihor Bykov On

By checking your code here https://github.com/mostafa-n3ma/Pcm-helper1.0/blob/master/app/build.gradle#L69

Are you sure you are not dependent on the google play service library?