Arvutiteaduse instituut
  1. Kursused
  2. 2020/21 sügis
  3. Mobiiliarvutus ja asjade internet (LTAT.06.009)
EN
Logi sisse

Mobiiliarvutus ja asjade internet 2020/21 sügis

  • Main
  • Lectures
  • Labs
  • Homeworks & Home Assignments
  • Quizes
  • Task submission
  • Extra Materials
  • Projects
    • Teams & Topics
    • Presentations & Report
    • Grading & Submission
    package ee.ut.cs.lab9wprelive

    import android.Manifest
    import android.annotation.SuppressLint
    import android.content.Context
    import android.content.Context.LOCATION_SERVICE
    import android.content.pm.PackageManager
    import android.location.Location
    import android.location.LocationListener
    import android.location.LocationManager
    import android.os.Bundle
    import android.util.Log
    import androidx.core.app.ActivityCompat

    class LocationHelper(private val mContext: Context) : LocationListener {

        companion object {
            const val MIN_DISTANCE_CHANGE_FOR_UPDATES: Long = 10 // meters
            // The minimum time between updates in milliseconds:
            const val MIN_TIME_BW_UPDATES = (1000 * 60 * 1).toLong() // 1 minute
        }
        // Flags
        var isGPSEnabled = false
        var isNetworkEnabled = false

        var locationManager: LocationManager

        init {
            locationManager = mContext.getSystemService(LOCATION_SERVICE) as LocationManager
            isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
            isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)

        }

        @SuppressLint("MissingPermission")
        fun getCurrenLocationUsingNetwork() : Location?{
            if (!isNetworkEnabled) {
                Log.v("TAG ","Network not enabled!")
                return null
            } else {
                locationManager.requestLocationUpdates(
                    LocationManager.NETWORK_PROVIDER,
                    MIN_TIME_BW_UPDATES,
                    MIN_DISTANCE_CHANGE_FOR_UPDATES.toFloat(), this
                )
                return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
            }
        }

        @SuppressLint("MissingPermission")
        fun getCurrentLocationUsingGPS(): Location? {
            var location: Location? = null
            if (checkPermissions()) {
                Log.v("TAG ","No permission Granted")
            } else {
                if (!isGPSEnabled) {
                    Log.v("TAG ","GPS not enabled!")
                } else {
                    // If GPS enabled, get latitude/longitude using GPS Services
                    locationManager.requestLocationUpdates(
                        LocationManager.GPS_PROVIDER,
                        MIN_TIME_BW_UPDATES,
                        MIN_DISTANCE_CHANGE_FOR_UPDATES.toFloat(), this
                    )
                    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER)
                }
            }
            return location
        }

        private fun checkPermissions(): Boolean {
            return (ActivityCompat.checkSelfPermission( mContext, Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
                    ActivityCompat.checkSelfPermission( mContext, Manifest.permission.ACCESS_COARSE_LOCATION ) != PackageManager.PERMISSION_GRANTED)
        }



        override fun onLocationChanged(location: Location) {}
        override fun onProviderDisabled(provider: String) {}
        override fun onProviderEnabled(provider: String) {}
        override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {}

    }
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused