本文档介绍了 Developer Portal 的用途和用法。Developer Portal 是基于 Web 的界面,用于将内容提交到运营商的 Sun Java System Content Delivery Server。运营商将这些内容提供给订户,以供其下载到移动电话和其他设备。
本文档包括以下主题:
内容是一个通用术语,即订户要下载到移动设备的任何项。例如,游戏、商业应用程序、铃声和图片均为内容。
内容文件是指订户运行的可执行文件;在基于 Java 技术的应用程序(“Java MIDlet 应用程序”)中,则是指 Java 应用程序描述符 (JAD) 文件和 Java 归档 (JAR) 文件。JAD 文件的扩展名为 .jad
,JAR 文件的扩展名为 .jar
。如果将 Content Delivery Server 设置为支持 iAppli 应用程序,则内容文件是指扩展名为 .jam
的应用程序描述符文件和 JAR (.jar) 文件。支持文件是可以包括在内容中的可选文件。包括用户指南、图标、屏幕快照和预览文件(仅适用于铃声)。支持文件为订户提供了关于内容的附加信息。
可以提交的内容类型由运营商指定。通过启动 Developer Portal 中的提交向导可以查看受支持的内容类型(请参见“通过向导提交新内容”)。第一页上的“选择内容类型”字段展示了 Content Delivery Server 接受的内容类型。
由于各种设备的功能各不相同,所以如果不进行定制,则很难编写在所有设备上都能够正常运行的应用程序或其他内容类型。通过针对特定设备或具有特定功能的设备创建定制内容,您可以获得更大的用户群并提供更令人满意的用户体验。但是,将单个应用程序的每一个定制都视为不同的内容项会使效率低下。
Content Delivery Server 通过各种版来处理这种情况。可以为单个内容项提交多个版。该项的所有版都共享相同的描述、类别、价格信息和支持文件。这些版在其所需的设备功能方面各不相同。
订户查看可用的内容列表时,对于每一项,他们只能看到一个条目。Content Delivery Server 将根据订户的设备功能确定适合于订户的版。
版不同于更新。“更新”是指内容的功能和修复。“版”是指目标设备或设备功能。例如,以下各项即为“版”:
有关提交内容版的信息,请参见“通过向导提交内容版”。
Content Delivery Server 可以管理外部托管的内容和本地存储的内容。可以将内容上载到 Content Delivery Server 以便本地存储,或者提交指向您的服务器上存储的内容文件的 URL。存储在您的服务器上的内容称为外部内容。
要对本地存储内容的内容文件进行更改,必须将已修改的文件提交到 Content Delivery Server。然后管理员必须接受和发布更改,使订户可以使用这些更改。若要更改外部内容,只需更新您服务器上的内容文件。Content Delivery Server 在访问该内容时自动获得更新。
只有内容文件才外部托管。支持文件(例如图标和屏幕快照)都本地存储在 Content Delivery Server 上。
只有已注册的内容提供者才能提交内容。可以由管理员为您创建帐户,也可以通过 Developer Portal 注册来创建自己的帐户。
要进行注册,请执行以下操作:
其中 <domain> 是域名,<port> 是 Content Delivery Server 的端口号。此信息应该由运营商提供。
“注册”
完成注册。“确定”
关闭确认页面并访问 Developer Portal 主页。创建帐户后,将分配开发者计划。此计划用于指定可以在您为提交创建的应用程序中使用的 API。如果使用不允许的 API,内容将被拒绝。开发者计划不限制其他内容类型。如果对分配给帐户的开发者计划所允许的内容存有疑问,请与运营商联系。
本节介绍提交内容的指导和过程。提交内容时,Content Delivery Server 执行四项主要任务:
可以使用 Developer Portal 或内容聚集器界面提交内容。Developer Portal 提供了提交向导,可为您提示成功提交内容所需的所有信息和文件。或者,也可以自行对信息和文件进行打包,然后使用高级提交功能一步完成内容的提交。内容聚集器界面支持 XML-RPC。可以将描述内容的 XML 文件发布到 Content Delivery Server 的内容聚集器界面。
下面列出了提交内容的指导:
提交向导为提交内容提供了易于使用的界面。使用向导可以一次提交一项。请确保您对完成提交所需的所有文件和信息都具有访问权限。
要使用提交向导提交新内容,请执行以下操作:
屏幕上将显示“内容数据”(步骤 2,共 4 步)页面。
要上载内容,请执行以下操作:
要外部托管内容,请执行以下操作:
屏幕上将显示“Web 描述”(步骤 3,共 4 步)页面。
Control
键可以选择多个类别。此字段是必需的。“浏览”
查找文件。该文件必须是 GIF,图标应为 40 x 40 像素。“浏览”
查找文件。该文件必须是 GIF,图标应为 40 x 40 像素。“浏览”
查找文件。该文件必须是 GIF,图标应为 80 x 80 像素。“浏览”
查找文件。该文件必须是 PDF 文件。“浏览”
查找文件。该文件必须是支持铃声的类型。只有提交铃声时此字段才可用。“浏览”
查找文件。该文件必须是扩展名为 .jpg
的 JPEG 文件,图像应为 200 像素宽 x 190 像素高。如果仅提供一个屏幕快照,它将存储为屏幕快照 #1,无论在哪个字段中输入均可。屏幕上将显示“内容说明”(步骤 4,共 4 步)页面。
Control
键可以选择多种语言。如果选择了某种语言,则只有其设备支持选定语言的订户才能获得此内容。选择“免费”以免费提供内容。内容在 Catalog Manager 的“目录价格和费用”字段下作为“免费”列出。
要根据各次下载收费(所有内容类型),请执行以下操作:
要基于多次下载收费(所有内容类型),请执行以下操作:
要按照使用次数收费(仅适用于 Java MIDlet 应用程序),请执行以下操作:
要按照时间段收费(仅适用于 Java MIDlet 应用程序),请执行以下操作:
对于无特定功能要求的内容,请选择“不要求功能”
。
对于仅在特定设备上运行的内容,请选择“按支持的设备选择”
,并从提供的列表中选择一个或多个设备。按住 Control
键可以选择多个设备。
对于要求一组特定功能的内容,请选择“按要求的最小功能选择”
。指定下面的一个或多个功能:
Control
键可以选择多个字符集。Control
键可以选择多个字符集。如果提交成功,屏幕上将显示确认页。如果提交不成功,屏幕上将显示错误信息。有关该错误的附加信息,请单击“详细资料”。
您还将收到说明提交状态的电子邮件。有关详细信息,请参阅“提交验证通知”。
提交的内容视为该项的第一版。要提交其他版,请参见下一节。
成功提交某项的第一版后,即可提交其他版。后面的各版将继承第一版的描述信息、支持文件和价格信息。有关版的详细信息,请参见“版”。无论第一版的状态如何,都可以添加版。
要提交各版,请执行以下操作:
Control
键可以选择多种语言。如果选择了某种语言,则只有其设备支持选定语言的订户才能获得此版。
对于无特定功能要求的版,请选择“不要求功能”
。
对于仅在特定设备上运行的版,请选择“按支持的设备选择”
,并从提供的列表中选择一个或多个设备。按住 Control
键可以选择多个设备。
对于要求一组特定功能的版,请选择“按要求的最小功能选择”
。指定下面的一个或多个功能:
Control
键可以选择多个字符集。Control
键可以选择多个字符集。如果提交成功,屏幕上将显示确认页。如果提交不成功,屏幕上将显示错误信息。有关该错误的附加信息,请单击“详细资料”。
您还将收到说明提交状态的电子邮件。有关详细信息,请参阅“提交验证通知”。
可以通过转到内容列表并单击所需的内容来检查内容版的状态。“内容属性”页面的“版”部分显示了所有提交版的状态。
除了提交向导外,还可以使用高级提交选项。在使用此选项提交内容前,必须对要提交的内容进行打包并创建提交文件。有关创建提交文件的信息,请参见“打包内容”。
要提交打包的内容,请执行以下操作:
.zip
的 ZIP 文件,或者是扩展名为 .par
的置备归档 (PAR) 文件。如果提交的软件包包含了大量的内容,则整个过程可能要花几分钟才能完成。
如果提交成功,屏幕上将显示确认页。如果提交不成功,屏幕上将显示错误信息。有关该错误的附加信息,请单击“详细资料”。
您还将收到说明提交状态的电子邮件。有关详细信息,请参见“提交验证通知”。
内容聚集器界面支持 XML-RPC,用于提交内容。提交到此界面的内容被视为外部内容(请参见“内容托管”)。与以前介绍的提交内容不一样,将内容提交到内容聚集器不涉及图形用户界面。
要将内容提交到内容聚集器界面,请执行以下操作:
创建描述内容的 XML 文件。除了以下差异外,此文件与“创建内容提交文件”中所述的内容提交文件相同:
<Action>
标记后,包括以下标记:Developer Portal 中您帐户的用户名。必须具有帐户才能提交内容。
Developer Portal 中您帐户的密码。
在内容描述符部分中的 ContentType 标记后,包括以下标记中的一个:
<ContentURL src="url"/>
<ContentURL src="url">
...</ContentURL>
外部内容的 URL。指定的 URL 必须使用 http://
协议并指向 Content Delivery Server 支持的 MIME 类型文件。URL 必须返回 content-type
和 last-modified
HTTP 头字段。
text/vnd.sun.j2me.application-descriptor
的 .jad
文件。.jad
文件必须包含语句 MIDlet-Jar-URL:url-to-jar
,其中为 url-to-jar
指定的值指向 MIME 类型为 application/java-archive
的 .jar
文件。URL 必须返回 content-type
和 last-modified
HTTP 头字段。application/x-jam
的应用程序描述符文件 (.jam)
。
如果访问由 URL 指向的内容要求进行验证,则 <ContentURL>
标记必须包含 <Authentication>
标记。
标识用于访问内容的用户名和密码。type
是 None
或 Basic
。如果指定了 None
,则用户名和密码都将被忽略。
<DeviceIcon>
、<SmallIcon>
、<LargeIcon>
、<UserGuide>
、<Preview>
和 <ScreenShot>
。支持文件将从指定位置复制到 Content Delivery Server。代码示例 1 显示了使用 XML-RPC 提交新图片的样例 XML 文件。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="New"/> <Username>developer1</Username> <Password>dev1pwd</Password> <ContentDescriptor> <ContentType>picture</ContentType> <ContentURL src="http://localhost/pics/yosemite.jpg"/> <EditionName>Yosemite</EditionName> <Version>1.0</Version> </ContentDescriptor> <WebDescriptor> <Category>Home:Entertainment:Images</Category> <DeveloperContentId>177</DeveloperContentId> <WebGroup locale="en_US"> <DisplayName>Yosemite Valley</DisplayName> <ShortDescription>Yosemite Valley</ShortDescription> <LongDescription>A panoramic view of Yosemite Valley </LongDescription> <SmallIcon src="http://localhost/pics/icons/yosemIcon.gif"/> </WebGroup> </WebDescriptor> <PriceDescriptor locale="en_US"> <Download price="3.00" recurring="no"/> </PriceDescriptor> </ContentSubmission>
使用 HTTP Post 将 XML 文件发布到 http://
portal-host:port/developer/XMLSubmission
其中,portal-host 和 port 分别是 Developer Portal 的域名和端口号。要了解此信息,请与运营商联系。
内容聚集器界面通过 XML 文件来进行响应。代码示例 2 显示了提交成功时的响应。
<XMLResult> <ResultCode>0</ResultCode> <ResultDetails> <EditionName>...</EditionName> <EditionId>...</EditionId> </ResultDetails> </XMLResult>
代码示例 3 显示了提交失败时的样例响应。<ResultCode>
非零,<ResultDetails>
提供了错误信息。
<XMLResult> <ResultCode>-100</ResultCode> <ResultDetails>Invalid command</ResultDetails> </XMLResult>
您还将收到说明提交状态的电子邮件。有关详细信息,请参阅“提交验证通知”。
将内容提交到 Content Delivery Server 时,您将收到说明提交状态的电子邮件。如果提交具有多项内容的软件包,则将描述其中每一项的状态。对于通过自动验证过程的内容,会为您提供一个指向 Content Delivery Server 中内容的链接。
管理员审阅内容后,您将收到一封电子邮件,表明您的内容已被接受、拒绝,还是将接受进一步的审阅或测试。只要管理员更改了您提交的内容的状态或属性,您就会收到电子邮件通知。
如果对于要提交的同一内容类型有多个项目,则可将这些项目捆绑成一个提交文件,然后一步完成内容的提交。如果希望跳过提交向导并且一步提交项目,则也可以将单项进行打包以便提交。
要准确地对内容进行分类、存储和发布,则必须在具有特定文件的包中提交内容。Content Delivery Server 使用这些打包的文件来准确地将内容分发给用户。本节描述了在不使用提交向导的情况下如何对内容进行打包以便提交。
创建的软件包可以是扩展名为 .zip
的 ZIP 文件或者扩展名为 .par
的 PAR 文件。如果选择了创建置备归档 (PAR) 文件,则只能提交内容的第一版。无法使用 PAR 文件提交内容项的其他版。
用户指南
、屏幕快照
、建议的类别
和价格
)用于 PAR 提交。对于 PAR 提交,Content Delivery Server 忽略了用户指南
和屏幕快照
。缺省情况下,所有 PAR 提交都是免费的,并置于 Home:Featured
类别中。Content Delivery Server 假设内容说明以英文提供。对于 PAR 提交,高级功能值将被设置为缺省值。
将内容作为 PAR 文件打包时,必须包括名为 provisioning.xml
的置备文件。此文件的内容在“创建置备文件”中进行了介绍。有关置备文件的详细信息,请参见 J2EE 客户置备规范版本 1.0 (JSR-124),该规范可从以下位置获得:
http://www.jcp.org/en/jsr/detail?id=124。
将内容作为 ZIP 文件打包时,必须包括名为 ContentSubmission.xml
的内容提交文件,此文件提供了下列信息:
除了内容或外部内容的 URL 外,软件包还应该包括 Web 界面的所有图形和支持文件(参见前面关于 PAR 文件的注释)。
要打包内容,您必须对于每项执行以下操作:
ContentSubmission.xml
文件;或者,如果将内容作为 PAR 文件打包,则创建 provisioning.xml
文件。 以下各节介绍了如何创建其中的每个文件。
创建其中包含要提供的内容的文件。例如,为图片创建 GIF 文件,为铃声创建 MIDI 文件。此文件必须是 Content Delivery Server 支持的内容类型。有关有效内容类型的信息,请与运营商联系。
要提交应用程序,请将应用程序文件捆绑成一个 JAR 文件。还应该创建应用程序描述符,对 Java MIDlet 应用程序,描述符的扩展名为 .jad
,对 iAppli 应用程序,描述符的扩展名为 .jam
。应用程序描述符为应用程序管理人员提供了关于 JAR 文件内容的信息。对于应用程序,内容文件既指应用程序描述符文件,也是指 JAR 文件。
支持文件包括设备图标、小图标、大图标、用户指南以及一个或两个屏幕快照。对于铃声,还可提供订户在下载前可以收听的预览文件。所有支持文件都是可选的。支持文件应为下表中指定的类型和大小。
文件
|
类型
|
图像大小
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
设备图标
|
GIF (
.gif )
|
40 x 40 像素
|
||||||||||||
小图标
|
GIF (
.gif )
|
40 x 40 像素
|
||||||||||||
大图标
|
GIF (
.gif )
|
80 x 80 像素
|
||||||||||||
用户指南
|
PDF (
.pdf )
|
不适用
|
||||||||||||
预览文件(仅适用于铃声)
|
任何支持的铃声文件
|
不适用
|
||||||||||||
屏幕快照
|
JPEG (
.jpg )
|
200 宽 x 190 高像素
|
||||||||||||
内容提交文件 (ContentSubmission.xml
) 包括:
每个 ZIP 格式的软件包都必须包括 ContentSubmission.xml
文件。此文件包含下列信息(对必需标记作了如下注释):
<?xml version="1.0" encoding="utf-8"?>
必需
这是第一个标记。它表明了 XML 版本和此文件使用的文本编码。文件必须使用 UTF-8 编码。
<ContentSubmission>...</ContentSubmission>
必需
包括整个文档。
<Action value="
action">
</Action>
<EditionName>...</EditionName>
必需
表明此次提交的目的。action 的有效值是:
值
|
说明
|
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
New
|
第一次提交项目时请使用
New 。
|
|||||||||||||
Add
|
将某版添加到现有项目时使用
Add 。
|
|||||||||||||
Update
|
更改现有项目的二进制文件时使用
Update 。
|
|||||||||||||
<EditionName>
是指您希望更新或添加一版的现有内容的名称。只有当 <Action>
是 Add
或 Update
时才应该使用此标记。
文件中其余的标记在以下各节中进行了介绍:
有关示例,请参见“样例内容提交文件”。
本部分的内容提交文件将介绍运行内容所需的功能。所有操作都需要此部分(对必需标记作了如下注释):
<ContentDescriptor>...</ContentDescriptor>
必需
此标记包含的部分介绍了运行内容所需的设备功能。本部分的有效标记是:
<ContentType>
、<EditionName>
、<Version>
、<TargetDevice>
和<Capability>
。
<ContentType>...</ContentType>
必需,区分大小写
表明软件包中提交的内容类型。必须指定 Content Delivery Server 支持的内容类型。要了解此信息,请与运营商联系。
<EditionName>...</EditionName>
必需
指派给内容的名称。对于内容提供者,此名称必须唯一。如果
<Action>
是Update
,则使用不同于<Action>
部分中为<EditionName>
指定的名称时,将导致内容被重命名。
<Version>...</Version>
表明内容的版本号。例如,
1.0
。
<TargetDevice>...</TargetDevice>
表明要在其中运行内容的设备的类型。指定目标设备将阻止其设备不受支持的用户下载内容。指定的设备应该是 Content Delivery Server 支持的设备。要指定多个设备,需要包括多个
<TargetDevice>
标记。如果包括此标记,则不应该包括
<Capability>
标记。包括的任何<Capability>
标记都将被忽略。
<Capability name="
capability" value="
value"/>
定义设备功能。每个设备功能都是通过单独的 <
Capability
> 标记定义的。列出功能表示内容需要此功能。对任何字符串或布尔值,都可以使用星号 (*)。使用星号表示内容支持所有设备。省略 XML 文件中的功能表示内容支持所有设备。例如,如果包括标记<Capability name="colorcapable" value="*"/>
或省略colorcapable
标记,颜色支持和非彩色设备都允许下载应用程序。
下表列出了可能的功能定义。要为功能指定多个值,则应包括多个
<Capability>
标记,而且名称值都相同。所有功能都是可选的。功能不区分大小写。如果包括<TargetDevice>
标记,则不要包括<Capability>
标记。
不需要任何功能作为内容描述符节的组成部分。但是,定义功能时,将限制可能下载应用程序的设备。通过将应用程序限制为最佳设备,可以提高用户满意度。
本部分的内容提交文件将介绍内容的属性。此节提供的信息将在用户浏览可用内容列表时显示给用户。只有当 <Action>
是 New
时才包括此部分。
<WebDescriptor>...</WebDescriptor>
只有当 <Action> 是 New 时才需要
此标记包括用于向用户描述内容的部分。本部分的有效标记是:
<Category>
、<InfoURL>
和<WebGroup>
。
<Category>...</Category>
必需
指示编制目录时要依据的服务器类别,例如:
Home:Business:Finance
。要指定多个类别,需要提供多个<Category>
标记。可以通过 Developer Portal 查看为 Content Delivery Server 定义的现有类别。
<InfoURL>...</InfoURL>
表示具有内容或供应商信息的 Web 站点。
<DeveloperContentID>...</DeveloperContentID>
用于标识此内容的字符串。此 ID 仅供您使用。Content Delivery Server 不使用此 ID。
每个支持的语言环境都需要以下信息:
<WebGroup locale="locale">...</WebGroup>
必需
包括下列相应语言环境的说明。locale
的值表示包括的显示信息的语言环境。使用双字符语言代码后跟双字符国家/地区代码的格式,例如:
en_US
。
<DisplayName>...</DisplayName>
必需
服务器的 Web 界面上显示的标题,例如
Stock Ticker
。此值最大不超过 20 个字符(包括空格)。
<ShortDescription>...</ShortDescription>
必需
描述内容的文本,例如,
Get the latest stock quotes
。此值最大不超过 40 个字符。
<LongDescription>...</LongDescription>
必需
进一步描述内容的文本,例如:
Let Stock Ticker watch the market while you get on with your life.Get the latest stock quotes, personalize your portfolio, and set alarms on stock values
°此值最大不超过 256 个字符。
<DeviceIcon src="
path"/>
指定随软件包内容一同显示在设备屏幕上的图形。此值应该是软件包内图形文件的全限定文件名,例如,
src="/icon/deviceicon.gif"
。图形文件必须是扩展名为
.gif
的 GIF 文件,并且应为 40 像素宽 40 像素高。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供缺省图标。
<SmallIcon src="
path"/>
指定随软件包内容一同显示在服务器 Web 界面上的图形。此值应该是软件包内图形文件的全限定文件名,例如,
src="/icon/smallicon.gif"
。图形文件必须是扩展名为
.gif
的 GIF 文件,并且应为 40 像素宽 40 像素高。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供缺省图标。
<LargeIcon src="
path"/>
指定随软件包内容一同显示在服务器 Web 界面上的图形。此值应该是软件包内图形文件的全限定文件名,例如,
src="/icon/largeicon.gif"
。图形文件必须是扩展名为
.gif
的 GIF 文件,并且应为 80 像素宽 80 像素高。如果定义了不存在的路径,则提交将失败。如果未定义图标的路径,则提供缺省图标。
<UserGuide src="
path"/>
指定一个作为内容说明的 Adobe PDF 文件。此值应该是软件包内 PDF 文件的全限定文件名,例如,
src="/docs/usersguide.pdf"
。不需要文档。如果提供了文件,则该文件必须是 Adobe PDF 文件。不提供缺省值。
<Preview src="
path"/>
只有当 <ContentType> 是 ringtone 时才有效。
指定下载铃声前订户可以收听的预览文件。此值应该是软件包内铃声文件的全限定文件名,例如,
src="ring1_preview.wav"
。不需要预览文件。如果提供文件,则该文件必须为铃声,并且具有 Content Delivery Server 支持用于铃声的扩展名之一。不提供缺省值。
<ScreenShot src="
path"/>
指定随软件包内容一同显示在服务器 Web 界面上的屏幕快照。要指定第二张的屏幕快照,请提供其他
<ScreenShot>
标记。此值应该是软件包内图形文件的全限定文件名,例如,src="/graphics/screen1.jpg"
。不需要屏幕快照。如果提供了屏幕快照,则图形文件必须是扩展名为
.jpg
的 JPEG 文件,并且应为 200 像素宽 190 像素高。不提供缺省值。
本部分的内容提交文件将描述针对内容的预期付费方式。只有当 <Action>
是 New
时才包括此部分。
<PriceDescriptor locale="
locale">...</PriceDescriptor>
只有当 <
Action
> 是 New 时才需要此标记包括描述了您在内容中放置的价格的部分。本部分的有效标记是:
<Download>
、<Subscription>
和<Usage>
。必须至少包含其中的一个标记。locale 的值表示您价格的语言环境。使用双字符语言代码后跟双字符国家/地区代码的格式,例如:
en_US
。
<Download price="
price" recurring="
value" uses="
uses" period="
days"/>
表明您希望只要用户下载内容就收费。此价格模型对所有内容类型都有效。
<Subscription price="
price" frequency="
freq" recurring="
value"/>
表明您希望每当用户连续一段时间使用内容时收费。这一价格模型仅对 Java 应用程序有效。
<Usage price="
price" uses="
value"/>
表明您希望每当用户使用内容达到指定次数时便进行收费。这一价格模型仅对 Java 应用程序有效。
描述符和价格特性
|
说明
|
|||||||||||||
描述符文本
|
||||||||||||||
price
|
此特性为下载设置价格。
value 必须包含在 PriceDescriptor 标记中定义的区域所使用的货币内。缺省值为 0 。
|
|||||||||||||
uses
|
此特性表明按指定价格可以使用内容的次数。
设置为大于 0 的数。
|
|||||||||||||
代码示例 4 中显示的样例文件描述了一个软件包,其中包含需要特定设备功能的股票行情收报机应用程序。此应用程序正在进行第一次提交。支持两种语言环境:en_US
和 it_IT
。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="New"/> <ContentDescriptor> <ContentType>midlet</ContentType> <EditionName>Stock Ticker - color</EditionName> <Version>1.0</Version> <Capability name="bitsperpixel" value="8"/> <Capability name="ccppaccept-language" value="en_US"/> <Capability name="colorcapable" value="yes"/> <Capability name="inputcharset" value="US-ASCII"/> <Capability name="inputcharset" value="UTF-8"/> <Capability name="outputcharset" value="US-ASCII"/> <Capability name="outputcharset" value="UTF-8"/> <Capability name="numberofsoftkeys" value="2"/> <Capability name="screenheight" value="64"/> <Capability name="screenwidth" value="64"/> </ContentDescriptor> <WebDescriptor> <Category>Home:Business:Finance</Category> <Category>Home:Business:Tools</Category> <InfoURL>http://www.stockticker.com</InfoURL> <WebGroup locale="en_US"> <DisplayName>Stock Ticker</DisplayName> <ShortDescription>Get the latest stock quotes</ShortDescription> <LongDescription> Let Stock Ticker watch the market while you get on with your life. Get the latest stock quotes, personalize your portfolio, and set alarms on stock values. </LongDescription> <DeviceIcon src="/graphics/deviceicon.gif"/> <SmallIcon src="/graphics/smallicon.gif"/> <LargeIcon src="/graphics/largeicon.gif"/> <UserGuide src="/docs/userguide.pdf"/> <ScreenShot src="/graphics/screen1.jpg"/> <ScreenShot src="/graphics/screen2.jpg"/> </WebGroup> <WebGroup locale="it_IT"> <DisplayName>Borsa Valori</DisplayName> <ShortDescription>Osserva la Borsa Valori.</ShortDescription> <LongDescription> Passarsela bene mentre noi osservamo la Borsa Valori per lei. Offremo i quotes, un portafoglio personale, e lei puo meetere allarme per i prezzi. </LongDescription> </WebGroup> </WebDescriptor> <PriceDescriptor locale="en_US"> <Download price="3.00" recurring="no"/> <Subscription price="4.95" frequency="monthly" recurring="yes"/> <Usage price="0.89" uses="5"/> </PriceDescriptor> </ContentSubmission>
代码示例 5 中显示的样例文件描述了一个软件包,其中包含具有预览文件的铃声,不包含所需的功能。此铃声正在进行第一次提交。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="New"/> <ContentDescriptor> <ContentType>ringtone</ContentType> <EditionName>Lullaby</EditionName> <Version>1.0</Version> </ContentDescriptor> <WebDescriptor> <Category>Home:Entertainment:Music</Category> <DeveloperContentId>12345</DeveloperContentId> <WebGroup locale="en_US"> <DisplayName>Lullaby</DisplayName> <ShortDescription>Latest from GenCompany</ShortDescription> <LongDescription>Bring back memories of gentler days every time your phone rings</LongDescription> <Preview src="ring1_preview.wav"/> </WebGroup> </WebDescriptor> <PriceDescriptor locale="en_US"> <Download price="1.00" recurring="yes" period="2"/> </PriceDescriptor> </ContentSubmission>
代码示例 6 中显示的样例文件描述了一个软件包,其中包含了新版的股票行情应用程序,该应用程序的目标设备是 Siemens SL45i。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="Add"> <EditionName>Stock Ticker</EditionName> </Action> <ContentDescriptor> <ContentType>midlet</ContentType> <EditionName>Stock Ticker - Siemens</EditionName> <Version>1.0</Version> <TargetDevice>Siemens SL45i</TargetDevice> </ContentDescriptor> </ContentSubmission>
代码示例 7 中显示的样例文件描述了一个软件包,其中包含对股票行情应用程序的更新。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="Update"> <EditionName>Stock Ticker - color</EditionName> </Action> <ContentDescriptor> <ContentType>midlet</ContentType> <EditionName>Stock Ticker - color</EditionName> <Version>1.5</Version> <Capability name="ccppaccept-language" value="en_US"/> <Capability name="ccppaccept-language" value="it_IT"/> <Capability name="colorcapable" value="yes"/> <Capability name="inputcharset" value="UTF-8"/> <Capability name="outputcharset" value="UTF-8"/> <Capability name="numberofsoftkeys" value="2"/> </ContentDescriptor> </ContentSubmission>
如果正在提交的内容是作为 PAR 文件打包的,则必须包括 provisioning.xml
文件
。代码示例 8 显示了置备文件的示例:
<client-bundle> <content-id>20235J</content-id> <bundle-type>APPLICATION</bundle-type> <!--Required only for MIDlets <descriptor-file>http://hostname/games/checkers.jad </descriptor-file> --> <user-descriptions> <display-name>Checkers</display-name> <description>Play the game of checkers on phone</description> <icon mime-type="image/gif">/Checkers.gif</icon> </user-descriptions> <device-requirement> <requirement-name>HardwarePlatform.DeviceIdentifier</requirement-name> <requirement-value>Nokia/6310i</requirement-value> </device-requirement> <device-requirement> <requirement-name>HardwarePlatform.BitsPerPixel</requirement-name> <requirement-value>1</requirement-value> </device-requirement> <device-requirement> <requirement-name>HardwarePlatform.ScreenSize</requirement-name> <requirement-value>101x80</requirement-value> </device-requirement> </client-bundle>
置备文件必须包含下列标记:
<content-id>
每个开发者的唯一内容 ID。如果开发者用同一 ID 重新提交内容,则它将作为一版添加到系统的现有内容。
<display-name>
版名。要提交新版,则显示名称必须唯一。
<bundle-type>
捆绑类型。对于 MIDlet,类型必须是 APPLICATION
。其他有效类型包括铃声、图片、文本和视频。
<descriptor-file>
描述符文件元素。该元素的文本内容应该是描述符文件的 URI。URI 可以是绝对的(例如,其形式可以是 http://
),表示描述符文件不在 PAR 文件内。否则,它将相对于 PAR 文件根进行解释。
<description>
捆绑说明。详细说明和简要说明中都使用此标记。
<display-name>
内容的目录显示名称。当前只支持英语语言环境。
<icon mime-type='image/gif'>
图标的 MIME 类型(如果有)。小图标和大图标都使用此标记。
打包静态内容时将包括下列可选标记:
<content-file>
"http://
path"</content-file>
内容文件元素。该元素的文本内容应该是内容文件的 URI。URI 可以是绝对的(例如,其形式可以是
http://
),表示内容文件不在 PAR 文件内。否则,它将相对于 PAR 文件根进行解释。所有 PAR 提交当前都视为免费内容。
要指定设备要求,需要支持下列标记:
HardwarePlatform.DeviceIdentifier
HardwarePlatform.BitsPerPixel
HardwarePlatform.ScreenSize
缺省情况下,所有 PAR 提交都将置于 Home:Featured
类别下。
要了解使用 PAR 文件创建软件包时的限制,请参见“创建软件包”。
J2EE 客户置备规范版本 1.0 (JSR-124) 中描述了置备文件 (provisioning.xml
) 的内容详细信息,该规范可从以下位置获得:
http://www.jcp.org/en/jsr/detail?id=124。
创建内容文件、支持文件、ContentSubmission.xml
文件或 provisioning.xml
文件后,为内容创建压缩文件。
压缩文件包括:
meta
目录,如果内容是作为 ZIP 文件打包的,则此目录包含 ContentSubmission.xml
文件,如果内容是作为 PAR 文件打包的,则此目录包含 provisioning.xml
文件。
图 1 显示了铃声的样例 ZIP 文件,其中还包括 preview
子目录中的预览文件。
图 2 显示了 iAppli 应用程序的样例 ZIP 文件,其中子目录中还包括支持文档、图标和屏幕快照。
如果要提交多项,请为每项创建软件包 ZIP 文件。例如,如果有四张不同的图片,则应该生成四个软件包 ZIP 文件,并将其捆绑到一个 ZIP 文件。
只要 ZIP 文件包含同一内容类型,即可将多个软件包 ZIP 文件捆绑成一个提交文件。例如,提交文件可以包含两个或多个包含图片的软件包 ZIP 文件,但是不能包括其中包含应用程序的软件包 ZIP 文件。无法捆绑多个软件包 PAR 文件。
版是在具有不同功能的设备上运行的内容互生版本。例如,可以创建一版在 Nokia 6310i 设备上运行的股票行情应用程序,也可创建另外一版 Siemens S55 设备上运行的应用程序。每个版都共享提交的第一版的 Web 描述符和价格描述符属性。有关版的详细信息,请参见“版”。
必须单独为每个版打包。第一版的 ContentSubmission.xml
文件应该为该操作指定 New。在随后每版的 ContentSubmission.xml
文件中:
<Action>
标记指定 Add
。<Action>
标记下的 <EditionName>
标记中指定第一版的版名。<WebDescriptor>
和 <PriceDescriptor>
标记。因为无法保证以单个文件提交软件包时软件包的处理顺序,所以应该单独提交第一版。确认已收到第一版后,可以捆绑其余的版并以一个 ZIP 文件提交。无法作为 PAR 文件提交版。
要了解新版的样例内容提交文件,请参见第 23 上页的代码示例 6 。
要打包外部内容,必须:
ContentSubmission.xml
文件。
要创建 ContentSubmission.xml
、支持文件和压缩文件,请使用打包内容 (“创建软件包”) 的指令,区别如下:
ContentSubmission.xml
文件中需要附加标记。内容描述符部分中 <ContentType>
标记的后面,包括下面标记中的一个:<ContentURL src="
url"/>
<ContentURL src="
url">...</ContentURL>
外部内容的 URL。指定的 URL 必须使用 http://
协议并指向 Content Delivery Server 支持的 MIME 类型文件。URL 必须返回 content-type
和 last-modified
HTTP 头字段。
text/vnd.sun.j2me.application-descriptor
的 .jad
文件。.jad
文件必须包含语句 MIDlet-Jar-URL:url-to-jar
,其中为 url-to-jar
指定的值指向 MIME 类型为 application/java-archive
的 .jar
文件。URL 必须返回 content-type
和 last-modified
HTTP 头字段。application/x-jam
的应用程序描述符文件 (.jam
)。
如果访问由 URL 指向的内容要求进行验证,则 <ContentURL>
标记必须包含 <Authentication>
标记。
标识用于访问内容的用户名和密码。type
是 None
或 Basic
。如果指定了 None
,则用户名和密码都将被忽略。
代码示例 9 显示了用于提交外部内容的样例内容提交文件。
<?xml version="1.0" encoding="UTF-8"?> <ContentSubmission> <Action value="Add"> <EditionName>Islands</EditionName> </Action> <ContentDescriptor> <ContentType>picture</ContentType> <ContentURL src="http://host.domain.com/content/islands.gif"> <Authentication type="Basic"> <Username>externaluser</Username> <Password>passwd</Password> </Authentication> </ContentURL> <EditionName>Islands - Nokia</EditionName> <Version>1.0</Version> <TargetDevice>Nokia 7650</TargetDevice> </ContentDescriptor> </ContentSubmission>
压缩文件必须是 ZIP 格式。压缩文件应只包括:
ContentSubmission.xml
文件的名为 meta
的目录。Developer Portal 保留了一份您提交的所有项目的记录,不管是通过 Developer Portal 还是通过内容聚集器界面提交。使用 Developer Portal 可以查看项目的列表和每项的详细信息。
要查看已提交的内容列表,请执行以下操作:
每个项目都将显示下列信息:
要查看项目的详细信息,请单击内容列表中项目的标题。显示内容属性。属性的结尾处是该项目的版列表。版可以具有下列状态之一:
要查看版的详细信息,请单击版名。
对于任何其状态为 NEW
或 DENIED
的内容,都可以更改说明、支持文件或价格信息。要对任何其他状态的内容进行更改,或者要更改任何内容的功能,必须更新内容(请参见“更新内容”)。
要编辑内容:
屏幕上将显示“查看内容属性”页面。
按照需要编辑说明或支持文件,单击“确定”保存更改。可更改下面的任何一个字段。有关字段的说明,请参见“通过向导提交新内容”。
按照需要更改价格并单击“确定”保存更改。有关价格选项的说明,请参见“通过向导提交新内容”。
如果要在提交后更改内容,即修改源(例如,添加功能或修复缺陷),则需要使用更新来更新 Content Delivery Server。内容的更新就是在最初提交后已经修改的内容。更新与版不同,因为版是特定于设备或特定的设备功能的原始内容版本。
本节描述了更新内容的指导和更新本地存储和外部托管的内容的过程。有关版的信息,请参见“版”。
提交到 Catalog Manager 的内容可能具有下列状态类型之一:
状态
|
定义
|
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
New
|
提交的内容已被 Catalog Manager 接受。
|
|||||||||||||
Pending
|
提交的内容将接受审阅。
|
|||||||||||||
Published
|
提交的内容已被接受,并且可以由 Vending Manger 使用。
|
|||||||||||||
Testing
|
提交的内容将接受测试。
|
|||||||||||||
Denied
|
提交的内容已被拒绝。
|
|||||||||||||
Deleted
|
提交的内容已被删除。
|
|||||||||||||
除非内容的状态是 Deleted,否则可以更新以前提交的内容。如果内容的状态是 DELETED
,则应该将内容作为新内容重新提交,而不是更新。下表概述了更新内容的指导:
状态
|
操作
|
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
New
Denied |
可以执行下列操作:
|
|||||||||||||
Pending
Published Testing |
可以执行下列操作:
无法执行下列操作:
|
|||||||||||||
Deleted
|
无法对状态为 Deleted 的内容执行任何操作。
|
|||||||||||||
对 New 或 Denied 的内容进行更新时,原始内容和该内容的全部现有更新都将从数据库删除并被新的内容替换。新的内容将替换原始内容及其更新(如果有)。在 Catalog Manager 中,对状态为 Denied 的内容的更新将赋予状态 New。
对 Pending、Published 和 Testing 内容进行更新时,更新将添加到数据库并且引用原始内容。内容的状态两次显示于提交开发者的内容列表中,一次是 <state>/Upgraded,再一次是 New。例如,内容 SpruceDraw
的状态为 Published,Catalog Manager 已收到对该内容的更新。则开发者的内容列表显示:
Catalog Manager 发布更新时,通知将发送到提交开发者和 Vending Manager。具有可用更新的已存储内容将会在 Vending Manager 的目录列表中加以注明(请参阅《Sun Java System Content Delivery Server 管理员指南》以了解已存储内容的符号)。
更新将由 Catalog Manager 接收并被赋予 New 状态。状态更改为 Published 时,更改将在开发者的“内容属性”页面中反映出来:
要更改说明或价格信息,应该编辑提交。请参见“编辑提交”。
要更新存储在 Content Delivery Server 上的内容,请执行以下操作:
屏幕上将显示“查看内容属性”页面。
屏幕上将显示“查看内容版”页面。
文件的扩展名必须是其中指定的扩展名。如果要上载应用程序,必须输入应用程序描述符文件和 JAR 文件的位置。
Control
键可以选择多种语言。如果选择了某种语言,则只有其设备支持选定语言的订户才能获得此版。订户必须具有与指定功能匹配的设备,才会被授予访问此版的权限。
对于无特定功能要求的版,请选择“不要求功能”
。
对于仅在特定设备上运行的版,请选择“按支持的设备选择”
,并从提供的列表中选择一个或多个设备。按住 Control
键可以选择多个设备。
对于要求一组特定功能的版,请选择“按要求的最小功能选择”
。指定下面的一个或多个功能:
Control
键可以选择多个字符集。Control
键可以选择多个字符集。
如果提交成功,屏幕上将显示确认页。如果提交不成功,屏幕上将显示错误信息。有关该错误的附加信息,请单击“详细资料”。
只要针对外部托管内容的可执行文件需要更新,则可直接在服务器上更新文件。不必将更新提交到 Content Delivery Server。Content Delivery Server 将识别存储在外部站点上的内容的更改时间,并访问最新版本。
要更改 URL 或任何指定的功能,请按照更新本地托管内容的说明进行操作(“更新本地存储的内容”)。对于步骤 6,输入内容的 URL,如果需要,还要输入用户名和密码。URL 必须指向具有指定 MIME 类型的文件。如果要提交 Java 应用程序,URL 必须指向 JAD 文件。如果要提交 iAppli 应用程序,URL 必须指向扩展名为 .jam
的应用程序描述符文件。
提交到内容聚集器界面的内容将作为外部托管的内容进行处理。可以按照本节中的描述更新此内容,或者将更新提交到内容聚集器界面。要将更新提交到界面,请按照“为内容聚集器界面创建 XML 文件”中的描述创建 XML 文件,区别如下:
<Action>
标记指定 Update
。<Action>
标记下的 <EditionName>
标记中更新的内容的版名。<WebDescriptor>
和 <PriceDescriptor>
部分。要使用高级提交功能提交更新,请使用与打包新版(请参见“打包版”)相同的方式打包更新,区别如下:
<Action>
标记指定 Update
。<Action>
标记下的 <EditionName>
标记中更新的内容的版名。<WebDescriptor>
和 <PriceDescriptor>
部分。要了解用于更新内容的样例内容提交文件,请参见代码示例 7。
内容开发者指南 Sun Java™ System Content Delivery Server,版本 2004Q1 |
版权所有 © 2004 Sun Microsystems, Inc. 保留所有权利。必须依据许可证条款使用。