GithubHelp home page GithubHelp logo

Comments (1)

sahildev001 avatar sahildev001 commented on June 26, 2024

I fixed this issue by changing "AutomaticLocationWorker" to "AutomaticLocationBackgroundService:LifecycleService()" or change worker to lifecycleService.

private var fusedLocationProviderClient: FusedLocationProviderClient? = null

    private val locationUpdatePendingIntent: PendingIntent by lazy {
        val intent = Intent(this, LocationUpdatesBroadcastReceiver::class.java)
        intent.action = LocationUpdatesBroadcastReceiver.ACTION_PROCESS_UPDATES
        PendingIntent.getBroadcast(this, 0, intent,  PendingIntent.FLAG_MUTABLE)
    }
  fusedLocationProviderClient?.requestLocationUpdates(
            mLocationRequest,
            locationUpdatePendingIntent
        )

LocationUpdatesBroadcastReceiver


class LocationUpdatesBroadcastReceiver: BroadcastReceiver() {
    private  val TAG = "LocationUpdatesBroadcas";
    override fun onReceive(context: Context?, intent: Intent?) {
        Log.d(TAG, "onReceive() context:$context, intent:$intent")

        if (intent?.action == ACTION_PROCESS_UPDATES) {

            // Checks for location availability changes.
            LocationAvailability.extractLocationAvailability(intent)?.let { locationAvailability ->
                if (!locationAvailability.isLocationAvailable) {
                    Log.d(TAG, "Location services are no longer available!")
                }
            }

            LocationResult.extractResult(intent)?.let { locationResult ->
                Log.e(TAG, "onReceive: lastLocation ${locationResult.locations.size}", )
                if(locationResult.lastLocation != null){
                    ShareLocationToAutomaticWorker.INSTANCE?.reciveLocation(locationResult.lastLocation!!)
                }

            }
        }
    }

    companion object {
        const val ACTION_PROCESS_UPDATES =
            "com.commuteoptm.bcos.background_services.action." +
                    "PROCESS_UPDATES"
    }

    interface UpdatedLocation{
        fun onLocationUpdate(location: Location)
    }
}

ShareLocationToAutomaticWorker

class ShareLocationToAutomaticWorker(var updateLocation: LocationUpdatesBroadcastReceiver.UpdatedLocation){
    private  val TAG = "LocationUpdatesBroadcas"

    fun reciveLocation( location:Location){
        Log.e(TAG, "reciveLocation:--- ${location} " )
        updateLocation.onLocationUpdate(location)
    }


    companion object {
        var INSTANCE: ShareLocationToAutomaticWorker? = null

        fun getInstance(updateLocation: LocationUpdatesBroadcastReceiver.UpdatedLocation): ShareLocationToAutomaticWorker {
            return INSTANCE ?: synchronized(this) {
                INSTANCE ?: ShareLocationToAutomaticWorker(
                    updateLocation )
                    .also { INSTANCE = it }
            }
        }
    }
}

from location-samples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.