Windows phone 8 学习笔记(9) 集成(转)
2020-12-13 05:50
标签:blog http os io 文件 数据 art cti 本节整理了之前并没有提到的Windows phone 8 系统相关集成支持,包括选择器、锁定屏幕的、联系人的访问等。选择器列举了若干内置应用提供的相关支持;锁定屏幕展示了我们可以对锁定屏幕提供背景图像,屏幕通知等功能;联系人访问演示了对联系人的管理维护和只读访问。 快速导航: 选择器为手机内置应用对您的开发提供的相关支持,通过选择器你可以直接调用相机应用捕获一张照片到你的应用,或者调用联系人的相关资料,保存铃声等操作。 下面列举了大部分常用选择器: 下面代码罗列了调用方法。 [C#] 在手机锁定屏幕界面,我们的应用可以更新背景图像和添加屏幕通知。 要使应用能够更新锁定屏幕背景图像,我们必须在应用程序清单文件中声明。右键选择打开方式,选择XML文本编辑器打开WMAppManifest.xml,在Tokens下添加扩展内容。 [XML] 下面看看如何更新手机锁定屏幕背景为安装文件夹下的1.jpg图片。
[C#] 应用可以设置通知信息并展示到锁定屏幕的通知区域,我们需要首先在应用程序清单文件中指定用于显示徽标的png图片文件。我们右键选择打开方式,选择XML文本编辑器打开WMAppManifest.xml,设定徽标为LockImage.png。修改Tokens标记的DeviceLockImageURI元素如下:
[XML] 另外,我们还需要在清单文件中声明我们可以在锁定屏幕中显示通知。右键选择打开方式,选择XML文本编辑器打开WMAppManifest.xml,在Tokens下添加扩展内容。
[XML] 设置完成后,我们就可以在锁定屏幕展示通知了,但具体的展示还需要用户在系统设置的锁定屏幕页,添加我们的应用为锁定屏幕通知提供程序。全部设置好后,只要默认的图标有通知的数值,这个时候锁定屏幕提示就会展示。
注册为锁定屏幕背景提供程序后,我们的应用可以从锁定屏幕设置页启动,默认打开mainpage,我们需要处理启动uri。
[C#] 手机内置的联系人数据库支持编程的方式去访问。我们有两种方式访问,一种是只读访问,还有一种是可以执行增删改查操作。
下面演示了通过查询返回只读联系人列表。
[C#] 通过这种方式我们可以对系统联系人列表做各类增删改查操作,我们将演示如何操作。
[XAML] [C#] Windows phone 8 学习笔记(9) 集成(转),搜素材,soscw.com Windows phone 8 学习笔记(9) 集成(转) 标签:blog http os io 文件 数据 art cti 原文地址:http://www.cnblogs.com/jx270/p/3886408.html
一、选择器
二、锁定屏幕
三、联系人访问 一、选择器
1.地址选择器
2.相机拍照选择器
3.邮箱选择器
4.电话选择器
5.照片选择器
6.保存联系人选择器
7.保存电子邮件地址选择器
8.保存电话号码选择器
9.保存铃声选择器 //地址选择器 void showAddressChooserTask() { var addressChooserTask = new AddressChooserTask(); addressChooserTask.Completed += new EventHandler((a, b) => { if (b.TaskResult == TaskResult.OK) { MessageBox.Show(b.DisplayName + "的地址是:" + b.Address); } }); addressChooserTask.Show(); } //相机拍照选择器 void showCameraCaptureTask() { var cameraCaptureTask = new CameraCaptureTask(); cameraCaptureTask.Completed += new EventHandler { if (b.TaskResult == TaskResult.OK) { Image image = new Image(); var bitmapImage = new BitmapImage(); bitmapImage.SetSource(b.ChosenPhoto); image.Source = bitmapImage; ContentPanel.Children.Add(image); MessageBox.Show(b.OriginalFileName); } }); cameraCaptureTask.Show(); } //邮箱选择器 void showEmailAddressChooserTask() { var emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler { if (b.TaskResult == TaskResult.OK) { MessageBox.Show(b.DisplayName + "的邮箱是:" + b.Email); } }); emailAddressChooserTask.Show(); } //电话选择器 void showPhoneNumberChooserTask() { var phoneNumberChooserTask = new PhoneNumberChooserTask(); phoneNumberChooserTask.Completed += new EventHandler { if (b.TaskResult == TaskResult.OK) { MessageBox.Show(b.DisplayName + "的电话是:" + b.PhoneNumber); } }); phoneNumberChooserTask.Show(); } //照片选择器 void showPhotoChooserTask() { var photoChooserTask = new PhotoChooserTask(); photoChooserTask.Completed += new EventHandler { if (b.TaskResult == TaskResult.OK) { Image image = new Image(); var bitmapImage = new BitmapImage(); bitmapImage.SetSource(b.ChosenPhoto); image.Source = bitmapImage; ContentPanel.Children.Add(image); MessageBox.Show(b.OriginalFileName); } }); photoChooserTask.Show(); } //保存联系人选择器 void showSaveContactTask() { var saveContactTask = new SaveContactTask(); saveContactTask.Completed += new EventHandler { switch (b.TaskResult) { case TaskResult.OK: MessageBox.Show("保存成功。"); break; case TaskResult.Cancel: MessageBox.Show("取消保存。"); break; case TaskResult.None: MessageBox.Show("保存失败。"); break; } }); //添加一些默认值 saveContactTask.FirstName = "三"; saveContactTask.LastName = "张"; saveContactTask.MobilePhone = "13900000000"; saveContactTask.Show(); } //保存电子邮件地址选择器 void showSaveEmailAddressTask() { var saveEmailAddressTask = new SaveEmailAddressTask(); saveEmailAddressTask.Completed += new EventHandler { switch (b.TaskResult) { case TaskResult.OK: MessageBox.Show("保存成功。"); break; case TaskResult.Cancel: MessageBox.Show("取消保存。"); break; case TaskResult.None: MessageBox.Show("保存失败。"); break; } }); //添加默认值 saveEmailAddressTask.Email = "mail@163.com"; saveEmailAddressTask.Show(); } //保存电话号码选择器 void showSavePhoneNumberTask() { var savePhoneNumberTask = new SavePhoneNumberTask(); savePhoneNumberTask.Completed += new EventHandler { switch (b.TaskResult) { case TaskResult.OK: MessageBox.Show("保存成功。"); break; case TaskResult.Cancel: MessageBox.Show("取消保存。"); break; case TaskResult.None: MessageBox.Show("保存失败。"); break; } }); //添加默认值 savePhoneNumberTask.PhoneNumber = "13900000000"; savePhoneNumberTask.Show(); } //保存铃声选择器 void showSaveRingtoneTask() { var saveRingtoneTask = new SaveRingtoneTask(); saveRingtoneTask.Completed += new EventHandler { switch (b.TaskResult) { case TaskResult.OK: MessageBox.Show("保存成功。"); break; case TaskResult.Cancel: MessageBox.Show("取消保存。"); break; case TaskResult.None: MessageBox.Show("保存失败。"); break; } }); //铃声文件路径 saveRingtoneTask.Source = new Uri("appdata:/烟花易冷.mp3"); //铃声在列表中的显示名称 saveRingtoneTask.DisplayName = "烟花易冷"; saveRingtoneTask.Show(); } 二、锁定屏幕
2.锁定屏幕背景
private async void SetLockImg()
{
try
{
//指示当前应用是否为锁定屏幕提供程序
var isProvider = Windows.Phone.System.UserProfile.LockScreenManager.IsProvidedByCurrentApplication;
if (!isProvider)
{
//设置当前应用为锁定屏幕提供程序
var op = await Windows.Phone.System.UserProfile.LockScreenManager.RequestAccessAsync();
//应用是否已设置为锁定屏幕提供程序
isProvider = op == Windows.Phone.System.UserProfile.LockScreenRequestResult.Granted;
}
if (isProvider)
{
// 设置锁定屏幕的背景图像
Windows.Phone.System.UserProfile.LockScreen.SetImageUri(new Uri("ms-appx:///1.jpg", UriKind.Absolute));
// 获取锁定屏幕的图像
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("不能提供锁定屏幕背景 ");
}
}
catch
{
}
}
2.锁定屏幕通知
3.从锁定屏幕设置页启动应用
//从系统锁定屏幕设置页面打开时的处理
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)
{
//这里可以定义一个锁定屏幕背景增强设置的页面。
MessageBox.Show("从锁定屏幕设置打开。");
}
}
三、联系人访问
1.只读联系人访问
//联系人数据
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Contacts cons = new Contacts();
cons.SearchCompleted += new EventHandler
2.自定义联系人存储
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();
Query();
}
//新增联系人
async Task Add(string familyName, string givenName)
{
ContactStore store = await ContactStore.CreateOrOpenAsync();
StoredContact contact = new StoredContact(store);
contact.FamilyName = familyName;
contact.GivenName = givenName;
//获取已知联系人属性
IDictionary

下一篇:JavaScript -- 筑基
文章标题:Windows phone 8 学习笔记(9) 集成(转)
文章链接:http://soscw.com/index.php/essay/31841.html