Невозможно отобразить поддельное местоположение на Картах Google во время тестов Espresso на Android. ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Невозможно отобразить поддельное местоположение на Картах Google во время тестов Espresso на Android.

Сообщение Anonymous »

Я использую тесты Espresso для тестирования своего приложения для Android (targetSDKVersion: 34). Приложение включает в себя модуль, использующий карты Google и службы определения местоположения. Я хочу имитировать местоположение, чтобы имитировать движение пользователя во время тестирования. Я использую эмулятор Android и следующий код, чтобы установить имитируемое местоположение:

Код: Выделить всё

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))
}
Я вызываю эти функции внутри тестовой установки:

Код: Выделить всё

@Before
fun setUp() {
setupMockLocationApp()
setMockLocationFused(lat, lng)
}
Несмотря на настройку фиктивного местоположения, Карты Google не отображают синюю точку местоположения.
Что может быть причиной этой проблемы и как я могу это исправить? что высмеиваемое местоположение отображается на Картах Google?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -on-androi

Вернуться в «Android»