Местоположение Android означает, что уровень моря не задан.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Местоположение Android означает, что уровень моря не задан.

Сообщение Anonymous »

Я хочу получить доступ к среднему уровню моря в каком-либо месте с помощью .NET MAUI с помощью собственных вызовов Android:

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

Permissions.RequestAsync
().Wait();
var locationManager = (LocationManager)MauiApplication.Current
.GetSystemService(Context.LocationService)!;

var location = locationManager.GetLastKnownLocation(LocationManager.GpsProvider);
var mslLocation = location.MslAltitudeMeters;
Но это приводит к исключению Java.Lang.IllegalStateException: «Средняя высота уровня моря в этом месте не установлена»..
Я также пробовал использовать RequestLocationUpdates:

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

locationManager.RequestLocationUpdates(LocationManager.GpsProvider, 100L, 0f, new LocationListener());

class LocationListener : Java.Lang.Object, ILocationListener
{
public void OnLocationChanged(global::Android.Locations.Location location)
{
var mslLocation = location.MslAltitudeMeters;
}

public void OnProviderDisabled(string provider)
{

}

public void OnProviderEnabled(string provider)
{

}

public void OnStatusChanged(string? provider, [GeneratedEnum] Availability status, Bundle? extras)
{

}
}
У меня есть следующий AndroidManifest.xml: В обоих случаях местоположение MSL недоступно. Я что-то упускаю? Требуются ли какие-либо разрешения? Я не смог найти ничего в официальной документации по классу Location в Java

Подробнее здесь: https://stackoverflow.com/questions/790 ... el-not-set
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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