Я пытаюсь создать приложение, которое обнаруживает местоположение только на основе GPS, так как пользователь может находиться в области без какого-либо соединения rnet.
Я использовал функцию обратного вызова карт :
mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
Log.e("Maps", "Location Changed");
}
}
Я также реализовал LocationListener:
locationManager.requestLocationUpdates(locationProvider, 1000, 0, this);
@Override
public void onLocationChanged(Location location) {
Log.e("LocationManager","Location changed");
if(!location.isFromMockProvider()){
Log.e("LocationManager", "Location Changed");
}
}
Ни один из вышеперечисленных методов не вызывается, если у меня есть только информация о GPS / местоположении на моих 2 устройствах Huawei с android Nougat API 24. Однако они нормально работают на моем устройстве Samsung с android M API 23.
Я тестировал те же устройства с помощью приложения Google Maps, чтобы исключить возможность ошибки в моем приложение. На устройствах huawei API 24 я никогда не вижу синюю точку, определяющую мое местоположение. На Samsung API 23 я вижу синюю точку независимо от того, загружена карта или нет, что ожидается из-за отсутствия целого rnet для загрузки карты.
NB: I попытался установить настройки местоположения только для GPS и «Использовать GPS, WIFI, мобильную сеть». Оба дают одинаковый результат.
Это вызвано устройствами Huawei? Или это связано с android API 24? Есть ли способ это исправить?