编程知识 购物 网址 新闻 笑话 | 软件 日历 阅读 图书馆 China 头条阅读 学淘股 China Travel
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
   -> Windows Phone -> Windows Phone 8 锁屏背景与通知 -> 正文阅读

[Windows Phone]Windows Phone 8 锁屏背景与通知

Windows Phone 8 在锁屏背景图片是支持应用自定义的,并且在屏幕下方还支持应用通知提醒,这是一个十分吸引眼球的新功能 虽说目前已经看到很多应用已经做个了个特性今天我还是在这个里为大家相信说明一下 为后面想做这个功能的同学先铺铺路。
此文是升级到Windows Phone 8必需知道的13个特性系列的一个更新 希望这个系列可以给 Windows Phone 8开发者带来一些开发上的便利。
1. 锁屏背景
正如我说windows phone 8 是支持锁屏背景的替换的 下图是摘自MSDN的一张原图很好理解
代码写起来十分的简单
首先还是在WMAppManifest文件中声明下 这段XML要紧跟在<Tokens>节点后面
<Extensions>     
<Extension ExtensionName="LockScreen_Background"
ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}"
TaskID="_default" /></Extensions>
修改锁屏背景代码
这里我解释一下"ms-appx:///" 和"ms-appdata:///Local/"
ms-appdata points to the root of the local app data folder.也就是说当你的图片文件是在文件系统中的时候使用ms-appdata前缀,时常从网络下载的图片保存在隔离存储器中就要使用这个前缀了。
ms-appx points to the Local app install folder, to reference resources bundled in the XAP package. 当此张图片是和当前应用一起打包在XAP包中的时候使用ms-appx前缀。
private async void LockHelper
(string filePathOfTheImage, bool isAppResource){   
try   
{var isProvider =
Windows.Phone.System.UserProfile.LockScreenManager.IsProvidedByCurrentApplication;       
if (!isProvider)        
{           
// If you're not the provider, this call will prompt the user for permission.            // Calling RequestAccessAsync from a background agent is not allowed.           
var op = await
Windows.Phone.System.UserProfile.LockScreenManager.RequestAccessAsync();            // Only do further work if the access was granted.           
isProvider = op ==
Windows.Phone.System.UserProfile.LockScreenRequestResult.Granted;       
}       
if (isProvider)       
{           
// At this stage, the app is the active lock screen background provider.           
// The following code example shows the new URI schema.           
// ms-appdata points to the root of the local app data folder.           
// ms-appx points to the Local app install folder, to reference resources bundled in the XAP package.           
var schema = isAppResource ? "ms-appx:///" : "ms-appdata:///Local/";           
var uri = new Uri(schema + filePathOfTheImage, UriKind.Absolute);           
// Set the lock screen background image.           
Windows.Phone.System.UserProfile.LockScreen.SetImageUri(uri);           
// Get the URI of the lock screen background image.           
var currentImage = Windows.Phone.System.UserProfile.LockScreen.GetImageUri();           
System.Diagnostics.Debug.WriteLine("The new lock screen background image is set to {0}", currentImage.ToString());       
}       
else       
{MessageBox.Show("You said no, so I can't update your background.");        }    }   
catch(System.Exceptionex)    
{
System.Diagnostics.Debug.WriteLine(ex.ToString());   
}}
经过我的测试执行到这里 LockScreenManager.RequestAccessAsync()会弹出一个用户提示 需要用户确认。
// Setup lockscreen.               
if
(!LockScreenManager.IsProvidedByCurrentApplication)               
{await LockScreenManager.RequestAccessAsync();                }
当你在更新你的锁屏背景时 尤其是从独立存储空间中读取时 请尽量避免相同的文件名经我测试相同文件名有可能会造成系统默认缓存导致图片更新延迟的情况发生。
MSDN也提供了一个替换名称的方法
string fileName;var currentImage = LockScreen.GetImageUri();
if (currentImage.ToString().EndsWith("_A.jpg")){
fileName = "LiveLockBackground_B.jpg";}
else{fileName = "LiveLockBackground_A.jpg";}var lockImage = string.Format("{0}", fileName);// At this point in the code, write the image to isolated storage.
当然在运行程序之前我们不能用代码干预设置锁屏背景在我们的程序中可以先预设一张图片作为锁屏背景 但是这张图片的命名必须是DefaultLockScreen.jpg且将这张图片放置在项目根目录下.
同时在锁屏设置页面我们可以看到 open app的按钮可以直接导航到我们的应用中去 这里处理这个导航的方法和App to App 的方法类似 重载在App中处理InitializePhoneApplication方法UriMapperBase即可 相信参考windows phone 8 中的应用间通信
protected override void
OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{   
base.OnNavigatedTo(e);   
string lockscreenKey = "WallpaperSettings";   
string lockscreenValue = "0";   
bool lockscreenValueExists =
NavigationContext.QueryString.TryGetValue(lockscreenKey, out lockscreenValue);    if (lockscreenValueExists)   
{       
// Navigate the user to your app's lock screen settings screen here,        
// or indicate that the lock screen background image is updating.    }}
当然在应用中也可以通过LaunchUriAsync 方法打开设置页面 相信参考:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662937(v=vs.105).aspx
private async void btnGoToLockSettings_Click(object sender, RoutedEventArgs e){   
// Launch URI for the lock screen settings screen.   
var op = await Windows.System.Launcher.LaunchUriAsync(new
Uri("ms-settings-lock:"));}
2. 锁屏通知
windows phone 7 中已经包含了推送通知,在windows phone 8中开发者可以将其融入到锁屏界面中来
下图还是一张选自MSDN的截图很清晰的说明通知的情况,左侧大字是显示的应用的详细状态,下面一行可以显示5个应用程序的通知数量。
同样在锁屏设置中可以选择设置显示通知的应用及显示即时状态的应用。
下面介绍下应用如何实现这个通知
首先第一步还是要在WMAppManifest中声明我们的应用是一个支持锁屏通知的应用同时指定通知的图标来源。
图标必须是一个白色背景透明 38 x 38 像素的PNG 图片。
在Token节点中
<DeviceLockImageURI
IsRelative="true" IsResource="false">Assets/LockImage.png</DeviceLockImageURI>
其次在声明支持通知 前者是声明支持显示应用显示即时状态 后者是声明显示应用显示详细状态。
<Extensions>      <Extension ExtensionName="LockScreen_Notification_IconCount" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />      <Extension ExtensionName="LockScreen_Notification_TextField" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" /></Extensions>
如果还有困惑的话IT在线教育平台还有几个相似的例子。不过我想各位看官应该已经很清楚了。其实就这么简单,只要你的应用之前支持推送你 那么经过以上的设置推送信息就会显示在锁屏界面上了。
大功告成。
  Windows Phone 最新文章
[UWP] 自定义一个ItemsPanel
WP8.1程序开发中,如何加载本地文件资源或安
UWP 律师信息 MVVM 2.0版本
Win10 FaceAPI小demo开发问题汇总
【转】UWP 捕获全局异常
x:bind不支持样式文件 或 此Xaml文件必须又
WP模拟器修改语言为中文方法
wp仿系统截图
Windows Phone 8 锁屏背景与通知
博客园新闻WP8.1客户端
上一篇文章      下一篇文章      查看所有文章
加:2015-03-30 09:36:50  更:2017-05-17 02:33:26 
 
360图书馆 软件开发资料 购物精选 新闻资讯 Chinese Culture 三丰软件 开发 中国文化 阅读网 头条阅读 学淘股 China Travel 日历 万年历 2020年1日历
2020-1-22 1:21:31
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程知识