Search code examples
androidkotlinhere-api

Here SDK mapLoader.getMapPackageAtCoordinate return true but I never get result on callback


I am using Here SDK and everything looks fine with initialization but when I call:

val getMapPackageResult = mapLoader.getMapPackageAtCoordinate(GeoCoordinate(52.500556, 13.398889, 0.0))

to get maps packages to install, MapPackageAtCoordinateListener call back never get called!

It is not the same when I call mapLoader.getMapPackages with no GeoCoordination!

Could it be any limitation for my trial account from the back end? Any suggestion?


more details

I am following this sample repo https://github.com/heremaps/here-android-sdk-examples/tree/master/map-downloader

val diskCacheRoot = "${Environment.getExternalStorageDirectory().path}${File.separator}.isolated-here-maps"

MapSettings.setIsolatedDiskCacheRootPath(diskCacheRoot, HERE_MAP_ACTION)


mapLoader = MapLoader.getInstance()

mapLoader.addListener(object : MapLoader.Listener {

    override fun onProgress(i: Int) {
        Timber.i("onProgress $i")
    }

    override fun onInstallationSize(l: Long, l1: Long) {
        Timber.i("onInstallationSize")
    }

    override fun onGetMapPackagesComplete(mapPackage: MapPackage, resultCode: MapLoader.ResultCode) {
        Timber.i("onGetMapPackagesComplete name = " + mapPackage.englishTitle + " , resultCode = " + resultCode)
    }

    override fun onCheckForUpdateComplete(b: Boolean, s: String, s1: String, resultCode: MapLoader.ResultCode) {
        Timber.i("onCheckForUpdateComplete")
    }

    override fun onPerformMapDataUpdateComplete(mapPackage: MapPackage, resultCode: MapLoader.ResultCode) {
        Timber.i("onPerformMapDataUpdateComplete")
    }

    override fun onInstallMapPackagesComplete(mapPackage: MapPackage, resultCode: MapLoader.ResultCode) {
        Timber.i("onInstallMapPackagesComplete resultCode = $resultCode")
        if (resultCode == MapLoader.ResultCode.OPERATION_SUCCESSFUL) {
            Timber.i("onInstallMapPackagesComplete mapPackage = " + mapPackage.title)
        } else {
            listener.onError(NavigationException())
        }
    }

    override fun onUninstallMapPackagesComplete(mapPackage: MapPackage, resultCode: MapLoader.ResultCode) {
        Timber.i("onUninstallMapPackagesComplete")
    }
})

mapLoader.addMapPackageAtCoordinateListener({ mapPackage, geoCoordinate, resultCode ->
    Timber.i("onGetMapPackageAtCoordinateComplete name = ${mapPackage?.englishTitle}, resultCode = $resultCode")
    val packages = ArrayList<Int>()
    mapPackage?.let {
        packages.add(it.id)
        mapLoader.installMapPackages(packages)
    } ?: Timber.e("No package loaded")
})

Solution

  • The answer is, it was not the Here SDK!

    Another native library for some reason breaks with a Signal = SIGUSR2 (signal SIGUSR2) error and because of that, the whole Here SDK stops working!

    enter image description here

    The reason for not being able to track the issue was the Java wrapper works fine but C part of their code was not working anymore.