如何在 Xamarin.Forms 中开启 on/off 飞行模式?

How to turn on/off airplane mode in Xamarin.Forms?

如何在 Xamarin.Forms 中为 android 和 ios 开启 on/off 飞行模式?

由于@Patrick Hofman 和@DavidG said.You 无法通过您项目中的代码打开 on/off 飞行模式。但是,您可以使用 Dependency Service 在 Forms 中打开系统设置页面,让用户打开 on/off 飞行模式手册。

in Forms,add a new interface

public interface ISettingsService
{
  void OpenSettings();
}

in iOS

using xxx.iOS;
using Foundation;
using UIKit;
using Xamarin.Forms;

[assembly: Dependency(typeof(OpenSettingsImplement))]
namespace xxx.iOS
{
    public class OpenSettingsImplement : ISettingsService
    {
        public void OpenSettings()
        {
            var url = new NSUrl($"App-Prefs:");
            UIApplication.SharedApplication.OpenUrl(url);
        }
    }
}

注:

App-Prefs: 在 iOS 中是私有的 api。所以如果你想上传到应用商店,它可能会被商店拒绝。

in Android

using Android.Content;

using xxx;
using xxx.Droid;
using Xamarin.Forms;

[assembly: Dependency(typeof(OpenSettingsImplement))]
namespace xxx.Droid
{
    public class OpenSettingsImplement : ISettingsService
    {
        public void OpenSettings()
        {
            Intent intentOpenSettings = new Intent();
            intentOpenSettings.SetAction(Android.Provider.Settings.ActionAirplaneModeSettings);
            Android.App.Application.Context.StartActivity(intentOpenSettings);
        }
    }
}