使用光传感器的Windows Phone应用程序在几秒钟后关闭

时间:2014-08-16 17:20:16

标签: c# windows-phone-8 windows-phone

我需要帮助解决Windows Phone上的问题。我正在使用传感器(Windows.Devices.Sensors)进行一些测试,我尝试做一些无用但有趣的事情:阅读音乐(使用MediaElement)并根据光传感器测量的亮度改变音量!

一切正常,几秒钟后突然,应用程序关闭我的测试设备(带WP 8.1的Lumia 925),但测试仍在Visual Studio中进行。谁能告诉我我做错了什么?

private DispatcherTimer timer;

public MainPage()
{
    this.InitializeComponent();
    this.NavigationCacheMode = NavigationCacheMode.Required;

    // Timer
    timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromMilliseconds(10.0);
    timer.Tick += timer_Tick;
    timer.Start();
}

void timer_Tick(object sender, object e)
{
    var lightSensor = LightSensor.GetDefault();
    var lightSensorValue = Math.Truncate(lightSensor.GetCurrentReading().IlluminanceInLux);
    TextBlock_SensorValue.Text = lightSensorValue.ToString();
    MediaElement_music.Volume = lightSensorValue > 100 ? 1.0 : lightSensorValue / 100.0;
}

1 个答案:

答案 0 :(得分:0)

查看代码时会出现一些问题。您为什么使用计时器而不使用评论中提供的example中所述的活动?

对于Visual Studio问题,请检查您是否在CLR的 Debug / Exceptions ... 下启用了Thrown选项。 VS会打破您可能看不到的异常。

Enable to break on Exceptions Thrown in Visual Studio

需要注意的是,您在10 MS时的计时器非常快,您的处理程序代码可能会被多次调用,这可能会导致一些尴尬的副作用。

编辑:顺便说一下,我无法重现你的错误。我的应用程序在多个分钟内从未关闭/崩溃。使用WP Silverlight 8.1项目在Lumia 920上进行测试。唯一的区别是我的终端上的页面缓存没有启用。