Windows Phone开发经验谈(10)-经常被忽略的WMAppManifest.xml详解

    大家在编写Windows phone的程序的时候可能并没有关注WMAppManifest.xml,其实这个档案是记录了应用程式的相关属性描述,以及定义应用程式的功能性的..所以还是相当重要的一个文档,这里我来详细介绍一下.

    这是一个xml文件,文件头如下,其中AppPlatformVersion为该应用设计的目标SDK版本,比如下面的为7.1代表的是至少运行在Windows Phone 7 Mango固件上的。

<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">

 

接下来的是程序的信息,各个标签说明:

• ProductID:代表APP的GUID 字串列表
• RuntimeType:设定APP是Silverlight 或是XNA 的类
• Title:App的列表页的名称,这里的文字也会显示在应用程式清单型
• Version:APP的版本编号
• Genre:当APP为Silverlight 时会为apps.normal,XNA时会为apps.game
• Author:作者名称
• Description:APP的描述 (说明)
• Publisher:这个值预设会是APP的名称,当您的应用程式有使用到Push的相关功能,这个值是一定要有的

注:其中比较关键的是ProductID,一台手机里面每个app的GUID都不相同..如果是相同的则会覆盖安装。

  <App xmlns="" ProductID="{03E82BAA-4EC7-439E-816D-562AF7B7D2B0}" Title="(+)公交路线查询" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="陈仁松" Description="Sample description" Publisher="ChinaBus">

下面是列表图片的名称,比较简单,可以改成别的名字。

<IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>

 

接下来是比较重要的<Capabilities>区域,这里是声明APP拥有哪些权限,默认如下所示,需要注意的是权限应保持最小也就是说改APP用到哪些权限就写哪些.未声明的权限会抛出“UnauthorizedAccessException“异常,各个标签说明:

  • ID_CAP_NETWORKING:网络访问
  • ID_CAP_IDENTITY_DEVICE:设备的信息
  • ID_CAP_IDENTITY_USER:用户的匿名身份信息
  • ID_CAP_LOCATION:位置信息
  • ID_CAP_SENSORS:传感器
  • ID_CAP_MICROPHONE:麦克风,用于录音
  • ID_CAP_MEDIALIB:访问媒体库
  • ID_CAP_GAMERSERVICES:XBox Live的一些服务
  • ID_CAP_PHONEDIALER:拨打电话
  • ID_CAP_PUSH_NOTIFICATION:推送消息
  • ID_CAP_WEBBROWSERCOMPONENT:浏览器组件

 

复制代码
    <Capabilities>
      <Capability Name="ID_CAP_GAMERSERVICES" />
      <Capability Name="ID_CAP_IDENTITY_DEVICE" />
      <Capability Name="ID_CAP_IDENTITY_USER" />
      <Capability Name="ID_CAP_LOCATION" />
      <Capability Name="ID_CAP_MEDIALIB" />
      <Capability Name="ID_CAP_MICROPHONE" />
      <Capability Name="ID_CAP_NETWORKING" />
      <Capability Name="ID_CAP_PHONEDIALER" />
      <Capability Name="ID_CAP_PUSH_NOTIFICATION" />
      <Capability Name="ID_CAP_SENSORS" />
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
      <Capability Name="ID_CAP_ISV_CAMERA" />
      <Capability Name="ID_CAP_CONTACTS" />
      <Capability Name="ID_CAP_APPOINTMENTS" />
    </Capabilities>
复制代码

 

 再往下看会看到Task的标签,默认如下所示,这个是APP内部使用的,一般来说不需要修改,不过可以关注下NavigationPage 的部分,假设你的起始页面(第一个启动显示的Page) 名称不是MainPage.xaml 的话,就可以在这边做对应的修改。

   <Tasks>
      <DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
    </Tasks>

再下面的是Tokens标签用来设置程序添加到主页面Tile时的瓷片的显示信息,这里TaskName必须和上面提到的Tasks里面的项对应.各个标签的说明

  • BackgroundImageURI:App固定到开始屏幕上显示的图标
  • Title:App固定到开始屏幕上显示的名称
  • Count:就是QQ消息推送那个位置显示的未读消息数
复制代码
 <Tokens>
      <PrimaryToken TokenID="ChinaBusToken" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>(+)公交路线查询</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
复制代码

 

 

posted on   豆浆咖啡  阅读(2673)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
< 2012年7月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

统计

点击右上角即可分享
微信分享提示