maui essentials 是 .net maui 内置的跨平台设备服务 api,无需额外安装,启用后即可使用权限、网络、存储、传感器等功能;需在项目文件设 true,api 已按模块拆分至 microsoft.maui.applicationmodel.permissions 等命名空间,并须完成 android/ios 平台配置与初始化。

MAUI Essentials 是 .NET MAUI 框架中内置的一组轻量级、跨平台设备服务 API,它把原本在 Xamarin.Essentials 中的功能完整继承并深度整合进 MAUI 生态,无需额外安装 NuGet 包。它不是独立库,而是项目启用后即开即用的“能力层”,覆盖权限、传感器、网络、存储、生物识别等高频原生功能。
核心定位与使用前提
MAUI Essentials 不是可选插件,而是 .NET MAUI 项目的默认组成部分。只要项目目标框架为 net8.0-android、net8.0-ios 等 MAUI 支持的平台,并在项目文件中设置了 <usemauiessentials>true</usemauiessentials>(新模板已默认开启),就能直接调用所有功能。
不需要引用 Xamarin.Essentials,也不再有 Microsoft.Maui.Essentials 这个独立命名空间——相关 API 已按逻辑拆分到更清晰的命名空间中,例如:
-
Microsoft.Maui.ApplicationModel.Permissions(权限) -
Microsoft.Maui.Networking(网络状态) -
Microsoft.Maui.Storage(安全存储、文件系统) -
Microsoft.Maui.Devices.Sensors(加速度计、陀螺仪等)
常用功能模块详解
权限管理
统一处理相机、位置、通知、生物识别等敏感权限。支持检查状态、动态请求、判断是否需提示用户(ShouldShowRationale),并兼容 Android 13+ 的细粒度权限(如蓝牙扫描/连接分离)和 iOS 的受限状态(Restricted、Limited)。
网络状态监测
通过 Connectivity.Current.NetworkAccess 实时获取联网能力(Internet / Local / None),还可订阅 ConnectivityChanged 事件,在 Wi-Fi 切换到蜂窝或断网瞬间触发响应逻辑。
安全数据存储SecureStorage 将密钥、令牌等敏感信息加密存入系统保险箱(Android KeyStore / iOS Keychain),调用只需两行:await SecureStorage.SetAsync("token", "abc123");var token = await SecureStorage.GetAsync("token");
文件系统抽象FileSystem.AppDataDirectory 提供统一路径,自动映射到各平台沙盒目录(如 Android 的 /data/data/{pkg}/files/,iOS 的 Application Support)。配合 Preferences 可持久化简单键值对。
注意事项与避坑点
部分功能仍需平台侧配置才能生效,不能只靠 C# 调用:
- Android:在
Platforms/Android/AndroidManifest.xml声明对应权限(如CAMERA、INTERNET) - iOS:在
Platforms/iOS/Info.plist添加用途说明键(如NSCameraUsageDescription、NSFaceIDUsageDescription) - 初始化要求:Android 需在
MainActivity.OnCreate()中调用Platform.Init();iOS 在AppDelegate.FinishedLaunching()中调用
基本上就这些。它不复杂但容易忽略平台配置,实际开发中建议把权限、描述文案、初始化三步列成 checklist,一次配全,避免真机调试时卡在黑屏或弹窗拒绝。







