You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI调用Android原生获取MSL海拔报错:未设置平均海平面高度

.NET MAUI调用Android原生接口获取MSL海拔失败问题

我尝试通过.NET MAUI调用Android原生接口获取某位置的平均海平面(MSL)海拔,首先使用GetLastKnownLocation方法:

Permissions.RequestAsync<Permissions.LocationWhenInUse>().Wait();
var locationManager = (LocationManager)MauiApplication.Current
    .GetSystemService(Context.LocationService)!;
    
var location = locationManager.GetLastKnownLocation(LocationManager.GpsProvider);
var mslLocation = location.MslAltitudeMeters;

运行时抛出异常:

Java.Lang.IllegalStateException: 'The Mean Sea Level altitude of this location is not set.'

之后我尝试用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配置如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application android:allowBackup="true" android:icon="@mipmap/appicon" android:supportsRtl="true"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

两种方式均无法获取MSL海拔,请问我是否遗漏了配置或权限?在Java Location类官方文档中未找到相关说明。

内容的提问来源于stack exchange,提问作者Stevie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:25:05