
本来想研究一下 利用闪光灯实现手电筒的代码,发现不是简答设置FlashMode属性可以解决问题的,ms也没有提供api,无意瞄了一眼侧边栏的文章列表,发现了设置屏幕锁屏背景的实现,手一抖点进去了。还算比较容易实现,用的的类查了一下,类的方法属性也没有几个,代码中都用到了。开始写的时候问题来了,,,,敲了一个类,试图右键解析添加引用,根本没有解析这一选项(我和我的小伙伴都惊呆了),,,,,,是不是错过了什么。最低电话支持 windows phone 8,ms对wp7的放弃,让我心都碎了,就是说在我的古董机上根本测试不了啊。无奈还是要吧代码敲一下,以后用到就copy一下。
用到的类有LockScreenManager和LockScreen。LockScreenManager类先判断当前应用是否为锁屏背景屏幕提供程序,将应用程序设置为锁定屏幕背景提供程序。在调用LockScreen的静态方法SetImageUri 设置锁屏背景。
private async Task<bool> IsLockScreenProvided()
{
bool isProvider = LockScreenManager.IsProvidedByCurrentApplication;
if (!isProvider)
{
//将当前应用程序设置为锁屏背景提供程序
LockScreenRequestResult lsr = await LockScreenManager.RequestAccessAsync();
isProvider = lsr == LockScreenRequestResult.Granted;
}
return isProvider;
} private async void SetLockScreenWallPaper(string filePathOfTheImage, bool isAppResource)
{
try
{
if (await IsLockScreenProvided())
{
// ms-appdata 表示本地应用程序根目录
// ms-appx 引用程序安装目录,以资源的形式捆绑在xap安装包中
//这应该是wp8与wp7的不同吧,wp7里这两个路径不是这么表示的,知道的牛人可以详细介绍一下??
var schema = isAppResource ? "ms-appx:///" : "ms-appdata:///Local/";
var uri = new Uri(schema + filePathOfTheImage, UriKind.Absolute);
//将锁定屏幕背景设置为位于提供的统一资源标识符 (URI) 处的图像。
LockScreen.SetImageUri(uri); //获取当前锁定屏幕背景的统一资源标识符 (URI)。
//var currentImage = LockScreen.GetImageUri();
}
else
{
MessageBox.Show("Permission denied by user to set the background.");
}
}
catch (System.Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
} }
async 和 await 关键字是第一次见到!现在理解就是通过最简单的方法,让你实现异步