如何用.NET MAUI在Android设备上编程打开WiFi设置页面
在.NET MAUI中打开Android系统WiFi设置页面
需求:通过.NET MAUI在Android设备上打开系统「设置>连接>WiFi」页面,该页面会显示当前已连接网络及可用网络(不同Android版本界面有差异),供用户选择程序此前创建的本地WiFi网络。
遇到的问题:知道需要调用平台特定代码,但不清楚对应的Android API;尝试过AppInfo.Current.ShowSettingsUI(),但打开的是应用设置页面,不是目标系统WiFi设置页面;不懂Java,在Android开发者文档中无从下手,暂未明确所需权限。
成功实现步骤
1. 编写ViewModel基础方法
先在ViewModel中创建按钮触发的异步方法:
namespace SandboxProject.ViewModel; public partial class OpenSettingsAttemptsPageViewModel : ObservableObject { [RelayCommand] private async Task ActionWifiSettings() { // 后续添加平台代码 } }
2. 添加核心Android平台调用代码
在方法中添加Android平台的Intent调用,直接打开WiFi设置页面:
[RelayCommand] private async Task ActionWifiSettings() { Platform.CurrentActivity?.StartActivity(new Intent(Settings.ActionWifiSettings)); }
3. 优化代码(条件编译、引用与异常处理)
添加条件编译指令确保仅在Android平台生效,引入必要的命名空间,并添加异常处理:
#if ANDROID using Android.Content; using Android.Provider; #endif namespace SandboxProject.ViewModel; public partial class OpenSettingsAttemptsPageViewModel : ObservableObject { [RelayCommand] private async Task ActionWifiSettings() { #if ANDROID try { Platform.CurrentActivity?.StartActivity(new Intent(Settings.ActionWifiSettings)); } catch (Exception ex) { await App.Current!.MainPage!.DisplayAlert("Exception", ex.Message, "OK"); } #endif } }
测试验证
在多个不同版本的Android模拟器及实体手机上测试,代码运行良好,无需修改AndroidManifest.xml的默认权限设置。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

