Bei Espresso-Tests auf Android kann der simulierte Standort nicht in Google Maps angezeigt werdenAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Bei Espresso-Tests auf Android kann der simulierte Standort nicht in Google Maps angezeigt werden

Post by Guest »

Ich verwende Espresso-Tests, um meine Android-App (targetSDKVersion: 34) zu testen. Die App enthält ein Modul, das Google Maps und Ortungsdienste nutzt. Ich möchte den Standort nachahmen, um Benutzerbewegungen während des Tests zu simulieren. Ich verwende den Android-Emulator und den folgenden Code, um den simulierten Speicherort festzulegen:

Code: Select all

fun setupMockLocationApp() {
val packageName = InstrumentationRegistry.getInstrumentation().targetContext.packageName
val uiAutomation = InstrumentationRegistry.getInstrumentation().uiAutomation
uiAutomation.executeShellCommand("appops set $packageName android:mock_location allow")
}

fun setMockLocationFused(lat: Double, lng: Double, accuracy: Float = 3F) {
val context = InstrumentationRegistry.getInstrumentation().targetContext
val fusedLocationClient: FusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(context)

Tasks.await(fusedLocationClient.setMockMode(true))
val location = Location(LocationManager.GPS_PROVIDER).apply {
this.latitude = lat
this.longitude = lng
this.accuracy = accuracy
this.time = System.currentTimeMillis()
}
Tasks.await(fusedLocationClient.setMockLocation(location))
}
Ich rufe diese Funktionen innerhalb des Testaufbaus auf:

Code: Select all

@Before
fun setUp() {
setupMockLocationApp()
setMockLocationFused(lat, lng)
}
Trotz der Einstellung des Scheinstandorts zeigt Google Maps den blauen Standortpunkt nicht an.
Was könnte dieses Problem verursachen und wie kann ich das sicherstellen? dass der simulierte Standort in Google Maps angezeigt wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post