7


设备定义文件

本章介绍了如何创建用于将设备导入到 Catalog Manager 中的设备定义文件。有关如何导入设备的信息,请参见 Catalog Manager 联机帮助中的“导入设备”。


创建设备定义文件

可以通过导入 .xml 格式的设备定义文件将设备添加到 Catalog Manager 中。请使用以下标记来创建用于将设备导入到 Catalog Manager 中的设备定义文件。已注明所有必需的标记。


表 7-1 设备定义标记

标记名称

标记描述

<?xml?>

<?xml version="1.0" encoding="utf-8"?>

它是文件中的第一个标记。它表明了 XML 版本和此文件使用的文本编码。文件必须使用 UTF-8 编码。

<Handset>

此标记是必需的。

这是顶层内容提交文件标记,它包括整个文档。

<Name>

此标记是必需的。

设备的名称。

例如:MyPhone-829i

<Model>

此标记是必需的。

设备的型号。

例如:829i

<Manufacturer>

此标记是必需的。

设备的生产商。

例如:MyPhone

<Description>

此标记是必需的。

电话的相关信息。

例如:型号支持 Midp2.0

<UserAgentPattern>

此标记是必需的。

移动设备型号的唯一标识符。用户代理是一项正则表达式,通常包含有关设备的硬件、浏览器和型号信息。

例如:MP-829i/2\.0 MMP/2\.0

<MimeTypes>

设备定义文件的 MimeTypes 部分必须以该顶层 MimeTypes 标记开头。

注:虽然并非必须指定 MimeType 信息,但必须在设备定义文件中包含 <MimeTypes/> 标记。

以下标记在 <MimeTypes> 中有效:<MimeType>

<MimeType>

此标记包含设备支持的特定 MimeType 的信息。每个设备可以包含多个 MimeType 标记。

以下标记在 <MimeType> 中有效:<MimeName><MimeContentType><Extension><DeliveryType><IsMMSCapable>

<MimeName>

标识此 MimeType 的名称。

例如:audio/midi

<MimeContentType>

与此 MimeType 关联的内容类型。

例如:ringtone

<Extension>

与此 MimeType 关联的文件扩展名。只能为每个 MimeType 指定一个扩展名。

例如:.mid

<DeliveryType>

对于该 MIME 类型,设备支持的传送方法为一步下载或两步下载。

如果与内容关联的所有信息都可以通过一个下载步骤完成,则执行一步下载。一步下载对于除 MIDlet 外的任何内容类型都有效。

如果描述符文件与内容关联,则执行两步下载。第一步下载描述符文件,然后第二步下载内容。MIDlet 始终使用两步下载过程。

如果您为非 MIDlet 内容选择了两步下载,则在设置设备功能时,必须指定内容描述符模板。有关详细信息,请参见 Catalog Manager 联机帮助中的“管理内容描述符模板”。

对于 SMS 内容,必须选择 NSM 或 EMS 作为传送机制。

以下值为有效值:

  • OTA one step = 1
  • OTA two-step = 2
  • NSM =3
  • EMS = 4

注意,每个设备定义文件只允许使用一种 SMS 传送机制类型:NSM 或 EMS。

<IsMMSCapable>

选定的 MIME 类型是否支持 MMS。

有效值为 yesno

<Capabilities>

此标记是必需的。

设备定义文件的 Capabilities 部分必须以此顶层 Capabilities 标记开头。

以下标记在 <Capabilities> 中有效:<Capability>

<Capability>

此标记是必需的。

一种设备功能。每个设备功能都是通过单独的 <Capability> 标记定义的。有关可能的功能定义的列表,请参见 <Name>。您必须指定一种浏览器类型。

以下标记在 <Capability> 中有效:<Name><Value>

<Name>

此标记是必需的。

设备功能的名称。功能可以包含以下特性:

  • bitsperpixel
  • browsertype(必需)
  • ccppaccept-language
  • colorcapable
  • configuration
  • confirmcapable
  • descriptor-template
  • imagecapable
  • inputcharset
  • maxappsize
  • maxcntsize
  • numberofsoftkeys
  • outputcharset
  • profile
  • pushtype
  • screenheight
  • screenwidth
  • supportedlibs

您必须指定一种浏览器类型,其他功能可以根据需要指定。有关描述和有效值,请参见第 8 章“设备功能”。

<Value>

此标记是必需的。

所定义的功能的值。对任何字符串或布尔值,都可以使用星号 (*)。使用星号表示设备支持任何值。


 

以下代码示例说明了标记的用法:


代码示例 7-1 样例 设备定义文件

<?xml version="1.0" encoding="UTF-8"?>
<Handset>
  <Name>MyPhone-829i</Name>
  <Model>829i</Model>
  <Manufacturer>MyPhone</Manufacturer>
  <Description>This is the latest MY series device.</Description>
  <UserAgentPattern>MP-829i/2\.0 MMP/2\.0</UserAgentPattern>
  <MimeTypes>
    <MimeType>
      <MimeName>audio/midi</MimeName>
      <MimeContentType>ringtone</MimeContentType>
      <Extension>.midi</Extension>
      <DeliveryType>1</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
    <MimeTypes>
      <MimeType>
      <MimeName>audio/mp3</MimeName>
      <MimeContentType>ringtone</MimeContentType>
      <Extension>.mp3</Extension>
      <DeliveryType>1</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
    <MimeType>
      <MimeName>audio/mp3</MimeName>
      <MimeContentType>ringtone</MimeContentType>
      <Extension>.mp3</Extension>
      <DeliveryType>1</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
    <MimeType>
      <MimeName>image/jpeg</MimeName>
      <MimeContentType>image</MimeContentType>
      <Extension>.jpg</Extension>
      <DeliveryType>2</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
    <MimeType>
      <MimeName>text/vnd.sun.j2me.app-descriptor</MimeName>
      <MimeContentType>midlet</MimeContentType>
      <Extension>.jad</Extension>
      <DeliveryType>2</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
    <MimeType>
      <MimeName>application/java-archive</MimeName>
      <MimeContentType>midlet</MimeContentType>
      <Extension>.jad</Extension>
      <DeliveryType>2</DeliveryType>
      <IsMMSCapable>no</IsMMSCapable>
    </MimeType>
  </MimeTypes>
  <Capabilities> 
    <Capability>
      <Name>browsertype</Name>
      <Value>XHTML-UP</Value>
    </Capability>
    <Capability>
      <Name>colorcapable</Name>
      <Value>yes</Value>
    </Capability>
    <Capability>
      <Name>imagecapable</Name>
      <Value>yes</Value>
    </Capability> 
    <Capability>
      <Name>confirmcapable</Name>
      <Value>no</Value>
    </Capability>
    <Capability>
      <Name>bitsperpixel</Name>
      <Value>16</Value>
    </Capability>
    <Capability>
      <Name>inputcharset</Name>
      <Value>ISO-8859-1</Value>
    </Capability>
    <Capability>
      <Name>outputcharset</Name>
      <Value>US-ASCII, ISO-8859-1, UTF-8</Value>
    </Capability>
    <Capability>
      <Name>screenheight</Name>
      <Value>160</Value>
    </Capability>
    <Capability>
      <Name>screenwidth</Name>
      <Value>128</Value>
    </Capability>
    <Capability>
      <Name>pushtype</Name>
      <Value>sms</Value>
    </Capability>
    <Capability>
      <Name>ccppaccept-language</Name>
      <Value>en_US</Value>
    </Capability>
    <Capability>
      <Name>numberofsoftkeys</Name>
      <Value>2</Value>
    </Capability>
    <Capability>
      <Name>maxappsize</Name>
      <Value>*</Value>
    </Capability>
    <Capability>
      <Name>maxcntsize</Name>
      <Value>*</Value>
    </Capability>
    <Capability>
      <Name>descriptor-template</Name>
      <Value>template_pathname</Value>
    </Capability>
    <Capability>
      <Name>supportedlibs</Name>
      <Value>MIDP-2.0</Value>
    </Capability>
    <Capability>
      <Name>configuration</Name>
      <Value>CLDC-1.0</Value>
    </Capability>
    <Capability>
      <Name>profile</Name>
      <Value>MIDP-2.0</Value>
    </Capability>
  </Capabilities>
</Handset>