Windows phone 8 WP8 led灯在屏幕锁下运行
在诸如Flashlight-X、Flashlight XT等应用程序中,实现了一个功能:在屏幕锁定下运行led灯。 启用灯光的一般实施:Windows phone 8 WP8 led灯在屏幕锁下运行,windows-phone-8,windows-phone,Windows Phone 8,Windows Phone,在诸如Flashlight-X、Flashlight XT等应用程序中,实现了一个功能:在屏幕锁定下运行led灯。 启用灯光的一般实施: var captureDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).First()); c
var captureDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).First());
captureDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On);
此代码启动灯,但在屏幕锁定20秒后灯被禁用。
应该怎样做才能使锁下的光保持活跃
在隐藏事件上阻塞UI线程可以工作,但不希望在解锁设备后将其保持阻塞状态
有些人建议禁用UserIdleDetectionMode,但这没有帮助。以下代码将允许您的应用程序在锁定屏幕下运行:
void rootFrame_Unobscured(object sender, EventArgs e)
{
status.Text = "coming back from lock screen!";
// resume the application
}
void rootFrame_Obscured(object sender, ObscuredEventArgs e)
{
status.Text = "going under lock screen!";
//minimize CPU usage, and save the settings.
}
private void RunAppUnderLockscreen(object sender, RoutedEventArgs e)
{
MessageBox.Show("The application will run under lock screen");
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
PhoneApplicationFrame rootFrame = App.Current.RootVisual as PhoneApplicationFrame;
if (rootFrame != null)
{
rootFrame.Obscured += new EventHandler<ObscuredEventArgs>(rootFrame_Obscured);
rootFrame.Unobscured += new EventHandler(rootFrame_Unobscured);
}
}
void rootFrame\u未被阻止(对象发送方、事件参数e)
{
status.Text=“从锁定屏幕返回!”;
//恢复申请
}
void rootFrame_遮挡(对象发送器,遮挡目标e)
{
status.Text=“进入锁屏状态!”;
//最小化CPU使用,并保存设置。
}
私有void RunAppUnderLockscreen(对象发送方,路由目标)
{
Show(“应用程序将在锁定屏幕下运行”);
PhoneApplicationService.Current.ApplicationIdleDetectionMode=IdleDetectionMode.Disabled;
PhoneApplicationFrame rootFrame=App.Current.RootVisual作为PhoneApplicationFrame;
if(rootFrame!=null)
{
rootFrame.obclused+=新的事件处理程序(rootFrame\u obclused);
rootFrame.Unobscured+=新的事件处理程序(rootFrame\u Unobscured);
}
}
查看以获取更多有用的信息,例如:
请记住,对于您的应用程序集
ApplicationDetectionMode
到IdleDetectionMode.Disabled
,它不能
将其更改回IdleDetecionMode.Enabled
,直到应用程序启动
再次启动(因此完全重启)或停用,然后
重新激活