Ontvang een bericht wanneer Geocoder klaar is voor gebruik

stemmen
-1

Ik ben het observeren van de connectiviteit van het apparaat met behulp van een BroadcastReceiver. Als het apparaat de status van offline verandert naar online Ik moet wat geocodering uitvoeren zoals in de onderstaande code.

Het probleem is, dat de geocoding mislukt met: java.io.IOException: grpc failed.
Als de oproep een of andere manier wordt vertraagd (bijvoorbeeld als gevolg van een breekpunt) de geocoder lijkt goed te werken.

Is er een manier om een melding wanneer het android.location.Geocoderklaar is voor gebruik?

// in BroadcastReceiver:

init {
    context.registerReceiver(this, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION))
}


override fun onReceive(context: Context?, intent: Intent?) {
    context?.let {
        val activeNetworkInfo = (context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).activeNetworkInfo
        val isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnected

        // if `isConnected` geocoding gets triggered
    }
}

// Geocoding
var coordinate: LatLng? = null

val address = arrayOf(
    location.street, location.streetNumber,
    location.zipCode, location.city,
    location.country
).joinToString( )

try {
    val geocoder = Geocoder(context)
    geocoder.getFromLocationName(address, 1).firstOrNull()?.let { result ->
        coordinate = LatLng(result.latitude, result.longitude)
    }
} catch (a: IOException) {
    coordinate = null
}

// do something with `coordinate`
De vraag is gesteld op 29/05/2018 om 12:26
bron van user
In andere talen...                            


1 antwoorden

Ontvang een bericht wanneer Geocoder klaar is voor gebruik

stemmen
-1

Ik ben het observeren van de connectiviteit van het apparaat met behulp van een BroadcastReceiver. Als het apparaat de status van offline verandert naar online Ik moet wat geocodering uitvoeren zoals in de onderstaande code.

Het probleem is, dat de geocoding mislukt met: java.io.IOException: grpc failed.
Als de oproep een of andere manier wordt vertraagd (bijvoorbeeld als gevolg van een breekpunt) de geocoder lijkt goed te werken.

Is er een manier om een melding wanneer het android.location.Geocoderklaar is voor gebruik?

// in BroadcastReceiver:

init {
    context.registerReceiver(this, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION))
}


override fun onReceive(context: Context?, intent: Intent?) {
    context?.let {
        val activeNetworkInfo = (context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).activeNetworkInfo
        val isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnected

        // if `isConnected` geocoding gets triggered
    }
}

// Geocoding
var coordinate: LatLng? = null

val address = arrayOf(
    location.street, location.streetNumber,
    location.zipCode, location.city,
    location.country
).joinToString(" ")

try {
    val geocoder = Geocoder(context)
    geocoder.getFromLocationName(address, 1).firstOrNull()?.let { result ->
        coordinate = LatLng(result.latitude, result.longitude)
    }
} catch (a: IOException) {
    coordinate = null
}

// do something with `coordinate`
antwoordde op 29/05/2018 om 12:26
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more