如何在Xamarin.Forms中打开/关闭飞行模式?

时间:2019-07-09 09:46:53

标签: c# android xamarin.forms mobile-data

如何在Xamarin.Forms中为Android和ios开启/关闭飞行模式?

1 个答案:

答案 0 :(得分:0)

正如@Patrick Hofman和@DavidG所说。您无法通过项目中的代码打开/关闭飞行模式。但是,您可以使用 Dependency Service 在“表单”中打开系统的设置页面,并让用户手动打开/关闭飞行模式。

  

在表单中,添加新界面

public interface ISettingsService
{
  void OpenSettings();
}
  

在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。因此,如果您要将其上传到应用商店,则商店可能会拒绝它。

  

在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);
        }
    }
}