快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰网站8814客户端_机器人论坛网进入



BackgroundTask and LockScreen

LockScreen锁屏,我们在应用电脑时常常会锁屏,当我们锁屏时,我们也可以看到一些消息,如未读邮件数、某谈天软件的新消息数等,这便是BackgroundTask与LockScreen之间的合营实现了~

一样平常LockScreen的信息包括以下几部分:

(1) 日期与光阴(2) 收集状态(3)电池量 这是最基础的几部分,当然还有系统自动设置的锁屏利用,如邮箱、日历、信息等,那我们自己创建的利用若何实现呢?

在这之前,先懂得LockScreen的基础内容~1、 什么环境下必要将利用法度榜样设置为锁屏利用?锁屏利用一样平常用于向用户申报紧张或故意义的消息,且消息内容简洁实时,应用户一瞥屏幕,就能看到最新的信息2、 声明LockScreen利用能力在利用法度榜样的Package.appxmanifest中必要声明锁屏功能和屏幕显示的徽章,详细如下 :

3、在法度榜样中可以提示用于是否将利用放置于锁屏上,经由过程BackgroundExecutionManager.RequestAccessAsync()会呈现一个对话框,被选择“allow”,法度榜样将会放置于锁屏中,但锁屏利用最多只能有7个,当跨越七个,会扣问用户调换哪个利用。

我们也可以手动将瓦片法度榜样设置为锁屏利用:

下面我们实现一个简单的准时推送信息至LockScreen APP:

第一步:新建一个空缺页面PushNotification.xaml,上面放置三个按钮,分手实现设置APP到LockScreen、开启后台准时推送消息、注销后台义务三个按钮

第二步:新建一个后台义务类NotificationBackTask.cs文件,功能便是一人简单的准时器,实现准时推送,代码与前一篇的很相似,经由过程BackgroundTaskProgressEventHandler去触发,今朝我还没找到其它的要领去触发主法度榜样,还望高手指教一下~

第三步:设置主工程中的Package.appxmanifest文件

同样必要在声明中添加后台义务 :

第四步:实现PushNotification.xaml的后台代码

点击”Set LockScreen App”按钮:

async private void btnSetLockScreen_Click(object sender, RoutedEventArgs e)

{BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();

switch (status){

case BackgroundAccessStatus.AllowedWithAlwaysOnRealTimeConnecti澳门新葡亰网站8814客户端vity:tbInfo.Text = "This app is on the lock screen and has access to Always-On Real Time Connectivity.";

btnSendBadge.IsEnabled = true;break;

case BackgroundAccessStatus.AllowedMayUseActiveRealTimeConnectivity:tbInfo.Text = "This app is on the lock screen and has access to Active Real Time Connectivity.";

btnSendBadge.IsEnabled = true;break;

case BackgroundAccessStatus.Denied:tbInfo.Text = "This app is not on the lock screen.";

break;case BackgroundAccessStatus.Unspecified:

tbInfo.Text = "The user has not yet taken any action. This is the default setting and the app is not on the lock screen.";break;

default:break;

}}

若APP没有加入LockScreen,会呈现以下画面:

点击“Send Badge BackTask”澳门新葡亰网站8814客户端按钮,同样必要先注册task

var builder = new BackgroundTaskBuilder();

builder.Name 澳门新葡亰网站8814客户端= SampleBackgroundTaskName;

builder.TaskEntryPoint = SampleBackgroundTaskEntryPoint; SystemTrigger trigger = new SystemTrigger(SystemTriggerType.UserAway, false);

builder.SetTrigger(trigger); SystemCondition condition = new SystemCondition(SystemConditionType.UserPresent);

if (condition != null) {

builder.AddCondition(condition); }

task = builder.Register(); task.Completed += task_Completed;

task.Progress += task_Progress;

在task_Progress事故中实现消息的推送:

void task_Progress(BackgroundTaskRegistration sender, BackgroundTaskProgressEven澳门新葡亰网站8814客户端tArgs args)

Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>{

var taskRegistration = sender as IBackgroundTaskRegis澳门新葡亰网站8814客户端tration;var progressArgs = args as BackgroundTaskProgressEventArgs;

if ((taskRegistration != null) && (progressArgs != null))

{//BadgeNumericNotificationContent badgeContent = newBadgeNumericNotificationContent(progressArgs.Progress);//BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeContent.CreateNotification());

ITileWideSmallImageAndText03 tileContent =TileContentFactory.CreateTileWideSmallImageAndText03();

tileContent.TextBodyWrap.Text = "This tile notification has an image, but it won't be displayed on the lock screen";tileContent.Image.Src = "ms-appx:///Assets/tile-sdk.png";

tileContent.RequireSquareContent = false;}

});

以上实现了两种推送,一种是简单badge,还有一种是Tile信息带文本信息的,对付后一种带具体信息,必要在PC Settings内行径设置,文本信息才会在LOCKSCREEN中显示,如下:

以上便是LockScreen的简单先容,可能还有些不够之处,还望高手辅导~

您可能还会对下面的文章感兴趣: