//show something important, do not sleep
DependencyService.Get<INativeTasks>().ExecuteTask("cannotSleep");
//can put in OnDisappearing event
DependencyService.Get<INativeTasks>().ExecuteTask("canSleep");
public class DroidCore
{
private static DroidCore instance;
public static DroidCore Current
{
get { return instance ?? (instance = new DroidCore()); }
}
public static Window MainWindow { get; set; }
...
}
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
ToggleScreenLock();
}
public void ToggleScreenLock()
{
if (!ScreenLock.IsActive)
ScreenLock.RequestActive();
else
ScreenLock.RequestRelease();
}
}
6条答案
按热度按时间llew8vvj1#
https://learn.microsoft.com/en-my/xamarin/essentials/device-display?tabs=android
只需要在任何页面中将
DeviceDisplay.KeepScreenOn
设置为true/false就可以了。不需要进入单独的平台。在Android中,你需要设置权限WAKE_BACK。
hgqdbh6s2#
更新
下面的答案有点旧,现在更好和更简单的方法是使用必需品并设置以下属性:
字符串
OG ANSWER
对于iOS,您需要覆盖Appdelegate类中的
DidFinishLaunchingWithOptions
方法:型
对于Android,您需要在MainActivity中为其执行以下操作:
你必须在AndroidManifest上声明这个uses-permission:
型
为WakeLock
using static Android.OS.PowerManager;
创建一个全局字段;型
在你的简历中:
型
只需记住在应用程序暂停或销毁时通过执行以下操作释放此锁:
型
通常情况下,我们建议您在Activity的onResume()中调用acquire方法,在onResume()中调用release方法,这样可以保证我们的应用在暂停或恢复的情况下仍然能够正常运行。
ilmyapht3#
Xamarin.表单:
字符串
本机任务助手:
型
安卓系统:
全局变量和其他变量
型
MainActivity.cs
型
本地助手:
型
iOS:
本地助手:
型
jtoj6r0c4#
我们可以通过使用**
Xamarin.Essentials
**插件来实现它。在解决方案级别安装它(在安装时选择 * 包括预发布 * 复选框)。在你的
MainPage
中写这段代码字符串
在Android项目
MainActivity
中添加这一行型
在调用
LoadApplication(new App());
之前。有关更多信息,请访问Microsoft docs。这是整个应用程序的工作。要安装插件,请参阅下面的截图-
x1c 0d1x的数据
t5fffqht5#
由于已接受的答案在Android中已被弃用
下面的代码适用于我在Xamarin.Android
字符串
acruukt96#
对于较新的Android版本,您可以使用此:
字符串