Я понимаю, как все складывается воедино на уровне данных и как я могу вернуть данные о местоположении через домен в презентацию, но я хотел бы также использовать эту функцию:
Код: Выделить всё
settingsClient.checkLocationSettings(locationSettingsRequest)
Я не могу передать Intent как объект Any в домен, а затем вернуть его обратно, потому что это похоже на мошенничество.< /p>
Насколько я знаю, я не могу сделать то же самое, чтобы показать уведомление о включении местоположения в приложении, и после нажатия «Да» оно это сделает (как на картах Google).
Насколько я знаю, я не могу сделать то же самое, чтобы показать уведомление о включении местоположения в приложении, и после нажатия «Да» оно это сделает (как на картах Google).
p>
Пока код
Код: Выделить всё
class LocationTracking @Inject constructor(
private val fusedLocationProviderClient: FusedLocationProviderClient,
private val settingsClient: SettingsClient,
private val locationManager: LocationManager?,
) : LocationTracking {
override suspend fun isLocationTrackingReady() = suspendCancellableCoroutine { continuation ->
settingsClient.checkLocationSettings(locationSettingsRequest)
.addOnSuccessListener {
continuation.resume(Result.Success(true))
}
.addOnFailureListener {
val isGpsEnabled =
locationManager?.isProviderEnabled(LocationManager.GPS_PROVIDER) ?: false
val isNetworkEnabled =
locationManager?.isProviderEnabled(LocationManager.NETWORK_PROVIDER) ?: false
if (it is ResolvableApiException) {
Log.d("LOG", "LOG ${it.resolution}")
}
continuation.resumeWithException(it)
}
}
private companion object {
private val locationRequest = LocationRequest.Builder(
Priority.PRIORITY_BALANCED_POWER_ACCURACY,
2000L
).build()
private val locationSettingsRequest = LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest)
.build()
}
}
Архитектура является наиболее распространенной
презентация (android) -> домен (kotlin )
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-provider