Add Permissions
Add location permissions toAndroidManifest.xml:
<manifest>
<!-- For foreground location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- For background location (optional, Android 10+) -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
</manifest>
Request Location Permission
import android.Manifest
import androidx.activity.result.contract.ActivityResultContracts
class MainActivity : AppCompatActivity() {
private val requestLocationPermission = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { permissions ->
when {
permissions[Manifest.permission.ACCESS_FINE_LOCATION] == true -> {
// Precise location granted
}
permissions[Manifest.permission.ACCESS_COARSE_LOCATION] == true -> {
// Approximate location granted
}
else -> {
// Location permission denied
}
}
}
private fun requestLocationPermission() {
requestLocationPermission.launch(arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
))
}
}
Initialize Location Module
import com.zixflow.location.ModuleLocation
val builder = ZixflowConfigBuilder(this, "YOUR_API_KEY")
.addModule(ModuleLocation())
.build()
Zixflow.initialize(builder)
Manual Location Update
import android.location.Location
// Set last known location
val location: Location = ... // Get from LocationManager or FusedLocationProvider
Zixflow.instance().setLastKnownLocation(location)