Как включить / выключить режим полета в Xamarin.Forms? - PullRequest
0 голосов
/ 09 июля 2019

Как включить / выключить режим полета в Xamarin. Формы для android и ios?

1 Ответ

0 голосов
/ 10 июля 2019

Как сказали @Patrick Hofman и @DavidG. Вы не можете включить / выключить режим полета с помощью кода в своем проекте. Однако вы можете открыть страницу настроек системы в формах с помощью Служба зависимостей и позволить пользователю включать / выключать ручной режим полета.

в Forms, добавить новый интерфейс

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: является частным API в iOS. Поэтому, если вы хотите загрузить его в магазин приложений, он может быть отклонен магазином.

в 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);
        }
    }
}
...