The new APK is located at:
composeApp/build/outputs/apk/debug/composeApp-debug.apk
- ✅
minDistance = 0m(was 5m) → Continuous updates even when stationary - ✅ Improved logs with visible accuracy
- ✅ Should receive updates every 5 seconds
- ✅ Improved detection (more fingerprints checked)
- ✅ Detailed device logs (FINGERPRINT, MODEL, etc.)
- ✅ FORCE_MOCK_GPS option (currently false)
# Uninstall old version first
adb uninstall com.followmemobile.camidecavalls
# Install new APK
adb install composeApp/build/outputs/apk/debug/composeApp-debug.apk- Start Logcat in a window:
adb logcat | grep AndroidLocationService-
Open the app on the phone
-
Go to TrackingScreen (select a route)
-
Press "Start Tracking"
-
Watch the logs - You should see:
🚀 startTracking called
🔍 Device Info:
FINGERPRINT: ...
MODEL: ...
MANUFACTURER: ...
BRAND: ...
DEVICE: ...
PRODUCT: ...
🔍 Is Emulator: false
🔍 Force Mock GPS: false
✅ Location permission granted
📱 REAL DEVICE - Using actual GPS
⚙️ Creating LocationRequest with interval=5000ms, minDistance=0.0m ← MUST be 0.0m!
📡 Requesting location updates...
✅ Location updates requested successfully
📍 Got last location (emulator workaround): XX.XXX, Y.YYY
📍 Real location update: XX.XXX, Y.YYY, accuracy: 100.0m
[wait 5 seconds]
📍 Real location update: XX.XXX, Y.YYY, accuracy: 50.0m
[wait 5 seconds]
📍 Real location update: XX.XXX, Y.YYY, accuracy: 15.0m
[continues every 5 seconds...]
- You see
minDistance=0.0m(NOT 5.0m!) - Receive updates every ~5 seconds
- Accuracy improves over time
- Works even when STATIONARY (indoors)
- You see
minDistance=5.0m→ Using old APK, reinstall - No updates after the first → Copy entire log here
- "Is Emulator: true" on real device → Device has strange fingerprint
- Start Logcat:
adb logcat | grep AndroidLocationService-
Open app on emulator
-
Go to TrackingScreen
-
Press "Start Tracking"
-
Watch the logs - You should see:
🚀 startTracking called
🔍 Device Info:
FINGERPRINT: google/sdk_gphone64_arm64/... ← Tells us if it's emulator
MODEL: sdk_gphone64_arm64
MANUFACTURER: Google
BRAND: google
DEVICE: emu64a
PRODUCT: sdk_gphone64_arm64
🔍 Is Emulator: true ← MUST be true!
🔍 Force Mock GPS: false
✅ Location permission granted
🎮 EMULATOR DETECTED - Using mock route coordinates
🎮 Starting mock location updates every 5000ms
🎮 Mock location 1/18: 39.8975369760724, 4.25736044721203
[wait 5 seconds]
🎮 Mock location 2/18: 39.8974507634291, 4.26061349991107
[continues through 18 points, loops]
- You see
Is Emulator: true - You see
🎮 EMULATOR DETECTED - Mock locations start automatically
- 18 points loop every 5 seconds
Is Emulator: false→ COPY THE LOG with complete Device Info- In this case, activate FORCE_MOCK_GPS (see below)
If emulator shows Is Emulator: false, force mock manually:
Edit AndroidLocationService.kt:42:
private val FORCE_MOCK_GPS = true // Change to true./gradlew clean
./gradlew :composeApp:assembleDebugadb uninstall com.followmemobile.camidecavalls
adb install composeApp/build/outputs/apk/debug/composeApp-debug.apkYou should see:
🔍 Is Emulator: false
🔍 Force Mock GPS: true
🎮 FORCED MOCK MODE - Using mock route coordinates
Copy entire log here from first location to 3-4 updates. Verify:
- Accuracy: should improve (100m → 15m → 5m)
- Frequency: ~5 seconds between updates
- UI: Does map update? Do statistics update?
Copy complete "Device Info" block:
🔍 Device Info:
FINGERPRINT: ...
MODEL: ...
MANUFACTURER: ...
... (all)
I'll use this info to add your emulator to detection.
- Verify APK installed:
adb shell pm list packages | grep camidecavalls - Verify version: In log search for
minDistance=→ MUST be 0.0m - Copy entire log from app start
- Real Device: Confirm continuous updates every 5s
- Emulator: Identify fingerprint for detection
- Accuracy: Verify improvement over time
- UI: Test if map/stats update correctly
When you have results, copy this:
## Test Real Device
- Device: [phone model]
- minDistance in log: [0.0m or 5.0m?]
- Updates received: [YES/NO]
- Frequency: [every X seconds]
- Initial accuracy: [±XXm]
- Accuracy after 30s: [±XXm]
- UI updated: [YES/NO]
Complete log:
[paste here]
## Test Emulator
- Emulator type: [ARM/x86]
- Is Emulator detected: [true/false]
- Device Info from log:
[paste complete block here]
- Mock GPS active: [YES/NO]
- Updates received: [YES/NO]
Complete log:
[paste here]
- minDistance=0.0m is CRITICAL - If you see 5.0m, it's not the new version
- Logs are key - Without logs I can't debug
- Real device first - It's the most important
- Emulator is secondary - If it doesn't work, we'll use FORCE_MOCK_GPS