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