<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Main : Popular Threads - Java ME &amp; Capuchin</title>
    <link>http://developer.sonyericsson.com/community/community/chinese_forums/java_me?view=discussions</link>
    <description>Popular Discussion Threads in Java ME &amp; Capuchin</description>
    <language>en</language>
    <pubDate>Mon, 16 Nov 2009 14:51:03 GMT</pubDate>
    <generator>Clearspace 2.5.7 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-11-16T14:51:03Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>CAPUCHIN中在FLASH CS3中可以实现ACCELEROMETER感应游戏吗？</title>
      <link>http://developer.sonyericsson.com/community/thread/50071</link>
      <description>&lt;!-- [DocumentBodyStart:f0bbd5b4-31e6-4965-9974-7b0a0e98f5a8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;如题，是要用accelerometer的MXP吗？直接在FLASH 中加入ACTION SCRIPT就可以吗？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f0bbd5b4-31e6-4965-9974-7b0a0e98f5a8] --&gt;</description>
      <pubDate>Thu, 12 Nov 2009 08:30:31 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/50071</guid>
      <dc:date>2009-11-12T08:30:31Z</dc:date>
      <clearspace:dateToText>5 days, 17 hours ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>关于java进行flash播放的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/50086</link>
      <description>&lt;!-- [DocumentBodyStart:bf38cbc9-dd60-45d6-b5c3-81880b976b1a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;除CAPUCHIN以外,一些相对旧一些的平台( jp7 , jp6 .... ),如何实现swf / flv的媒体播放呢 ?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:bf38cbc9-dd60-45d6-b5c3-81880b976b1a] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">capuchin</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">j2me</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">jp-8</category>
      <pubDate>Sat, 14 Nov 2009 02:16:55 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/50086</guid>
      <dc:date>2009-11-14T02:16:55Z</dc:date>
      <clearspace:dateToText>5 days, 17 hours ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>Java ME中如何录制比支持视频格式更小的视频？</title>
      <link>http://developer.sonyericsson.com/community/thread/50107</link>
      <description>&lt;!-- [DocumentBodyStart:42dde1e7-b3d0-4a0f-bd98-93d24d1c8b9b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;J105 通过&lt;span style="font-size: 10.5pt; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;span style="color: #000000;"&gt;CameraControl.getSupportedVideoResolutions  知道只能支持240X320.  &lt;span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;并且没有&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;VideoFormatControl&lt;/span&gt;&lt;span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;的实现，如何能录制更小的视频格式？&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10.5pt; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;span style="color: #000000;"&gt;&lt;span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10.5pt; font-family: &amp;amp;quot;Calibri&amp;amp;quot;,&amp;amp;quot;sans-serif&amp;amp;quot;; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;&lt;span style="color: #000000;"&gt;&lt;span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;大家有没有公开的视频压缩代码可以共享呢？&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:42dde1e7-b3d0-4a0f-bd98-93d24d1c8b9b] --&gt;</description>
      <pubDate>Wed, 18 Nov 2009 09:56:58 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/50107</guid>
      <dc:date>2009-11-18T09:56:58Z</dc:date>
      <clearspace:dateToText>3 days, 1 hour ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME怎么压缩图片？</title>
      <link>http://developer.sonyericsson.com/community/thread/49951</link>
      <description>&lt;!-- [DocumentBodyStart:40cd78f7-4321-49f4-8d90-6952136ccb1e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;对于特别大的图片，特别是JPG的图片，如何能够通过流的方式或者直接对图片文件的byte[]进行操作从而实现图片的压缩？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:40cd78f7-4321-49f4-8d90-6952136ccb1e] --&gt;</description>
      <pubDate>Fri, 30 Oct 2009 08:10:24 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49951</guid>
      <dc:date>2009-10-30T08:10:24Z</dc:date>
      <clearspace:dateToText>2 weeks, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>9</clearspace:messageCount>
      <clearspace:replyCount>8</clearspace:replyCount>
    </item>
    <item>
      <title>如何实现索爱手机背景灯常亮呢？</title>
      <link>http://developer.sonyericsson.com/community/thread/49946</link>
      <description>&lt;!-- [DocumentBodyStart:454cb550-98c6-42c8-a58c-2e40164c5663] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;如何实现索爱手机背景灯常亮呢？ &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:454cb550-98c6-42c8-a58c-2e40164c5663] --&gt;</description>
      <pubDate>Thu, 29 Oct 2009 07:24:36 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49946</guid>
      <dc:date>2009-10-29T07:24:36Z</dc:date>
      <clearspace:dateToText>3 weeks, 2 days ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>如何判断手机unlock的这种状态呢？</title>
      <link>http://developer.sonyericsson.com/community/thread/49856</link>
      <description>&lt;!-- [DocumentBodyStart:131b423e-b2e6-42aa-ae5f-bff5fdfeca9d] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我想实现 Java 程序能够判断手机的解锁这种状态，给用户提示信息。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问如何实现呢？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:131b423e-b2e6-42aa-ae5f-bff5fdfeca9d] --&gt;</description>
      <pubDate>Sat, 10 Oct 2009 06:01:28 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49856</guid>
      <dc:date>2009-10-10T06:01:28Z</dc:date>
      <clearspace:dateToText>1 month, 1 day ago</clearspace:dateToText>
      <clearspace:messageCount>6</clearspace:messageCount>
      <clearspace:replyCount>5</clearspace:replyCount>
    </item>
    <item>
      <title>索爱手机TextField.NUMERIC的bug</title>
      <link>http://developer.sonyericsson.com/community/thread/49588</link>
      <description>&lt;!-- [DocumentBodyStart:1c9b3ee8-5164-4f92-b5e7-9e32a3c0ac15] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;问一下某些索爱手机是否有下面的bug&lt;/p&gt;&lt;p&gt;TextBox 设为TextField.NUMERIC 并setMaxSize(10)时，只能输入10个0，但不能输入1234567891啊&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1c9b3ee8-5164-4f92-b5e7-9e32a3c0ac15] --&gt;</description>
      <pubDate>Tue, 01 Sep 2009 01:50:28 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49588</guid>
      <dc:date>2009-09-01T01:50:28Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>12</clearspace:messageCount>
      <clearspace:replyCount>11</clearspace:replyCount>
    </item>
    <item>
      <title>请问索爱的手机支持通过Java程序向自身发送AT指令吗？</title>
      <link>http://developer.sonyericsson.com/community/thread/49610</link>
      <description>&lt;!-- [DocumentBodyStart:7ef4f6a2-9796-41b3-b314-e78039c78150] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;    我很想通过J2ME程序向手机发送AT指令，请问在索爱系列的手机能实现吗，如果可以实现，怎么实现呢，谢谢！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7ef4f6a2-9796-41b3-b314-e78039c78150] --&gt;</description>
      <pubDate>Wed, 02 Sep 2009 17:46:49 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49610</guid>
      <dc:date>2009-09-02T17:46:49Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>请问两个Midlet之间如何通讯？</title>
      <link>http://developer.sonyericsson.com/community/thread/49855</link>
      <description>&lt;!-- [DocumentBodyStart:ec9bffe8-9085-4211-9ab5-0d7102580794] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我在做两个应用程序，都是midlet 的。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;现在我想实现这两个midlet 中的通讯，比如说一些数据的共享等等，请问如何实现？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ec9bffe8-9085-4211-9ab5-0d7102580794] --&gt;</description>
      <pubDate>Sat, 10 Oct 2009 05:59:46 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49855</guid>
      <dc:date>2009-10-10T05:59:46Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>如何去掉Satio手机运行java程序的虚拟键盘？</title>
      <link>http://developer.sonyericsson.com/community/thread/49623</link>
      <description>&lt;!-- [DocumentBodyStart:4d4eb73f-943f-49f1-bf23-840b8a2c836f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;每次用Satio运行java程序都会有虚拟的导航和ABCD四个键跑出来，请问如何去掉呢？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4d4eb73f-943f-49f1-bf23-840b8a2c836f] --&gt;</description>
      <pubDate>Fri, 04 Sep 2009 03:51:11 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49623</guid>
      <dc:date>2009-09-04T03:51:11Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>为什么运行模拟器就一闪而过呢？ by 漂流的河</title>
      <link>http://developer.sonyericsson.com/community/thread/49621</link>
      <description>&lt;!-- [DocumentBodyStart:19099a8d-e347-4703-bc77-51c356421e41] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;为什么运行模拟器就一闪而过呢？&lt;/p&gt;&lt;p&gt;提示信息为“ClassFormatError: Bad version information”&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:19099a8d-e347-4703-bc77-51c356421e41] --&gt;</description>
      <pubDate>Fri, 04 Sep 2009 01:42:20 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49621</guid>
      <dc:date>2009-09-04T01:42:20Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>关于索爱手机读取生日字段的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/50038</link>
      <description>&lt;!-- [DocumentBodyStart:a28e329f-e037-48fe-8a29-c2e59a0c47fa] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;在开发索爱手机时（我使用的机型是W908c），遇到了一个关于联系人信息读写的问题。&lt;br/&gt;联系人的Birthday（生日）字段使用本机地址簿编辑为2000年前的日期，如1985年11月19日，程序读出的却总是2000年11月19日，同理程序写入1985年11月19日，查看本机地址簿也变为2000年11月19日，而2000年以后的时间却读写正常，不知道为什么？&lt;/p&gt;&lt;p&gt;哪位大侠有经验，请多多指教。&lt;img height="16px" src="http://developer.sonyericsson.com/community/images/emoticons/mischief.gif" width="16px"/&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a28e329f-e037-48fe-8a29-c2e59a0c47fa] --&gt;</description>
      <pubDate>Mon, 09 Nov 2009 09:11:48 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/50038</guid>
      <dc:date>2009-11-09T09:11:48Z</dc:date>
      <clearspace:dateToText>1 week, 18 hours ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>两个publisher ID问题</title>
      <link>http://developer.sonyericsson.com/community/thread/49853</link>
      <description>&lt;!-- [DocumentBodyStart:27fab237-0a9d-46da-8d2f-2e9bcfb1a94a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;1。 Publisher ID 在Symbian Signed 和Java Verified 中是否可以通用？(Verisign, Trust Center &amp;amp; Thawte...)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2。 Publisher ID打到JAD中程序安装的时候就会出现安装错误的提示。怎么回事？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:27fab237-0a9d-46da-8d2f-2e9bcfb1a94a] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">publisher</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">id</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">java</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">verified</category>
      <pubDate>Fri, 09 Oct 2009 06:24:26 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49853</guid>
      <dc:date>2009-10-09T06:24:26Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>為什麼在JP8裡面的檔案讀寫這麼慢？</title>
      <link>http://developer.sonyericsson.com/community/thread/49327</link>
      <description>&lt;!-- [DocumentBodyStart:0efdaed3-9d3b-4e73-8690-ecc3fe742bb9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;請問一下大家：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;小弟有一隻在Nokia S40 6th下面跑的很正常的程式，現在有需求要移轉到SE JP8的系統上。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;程式一開始會讀大約九到十個檔案，並且把部份的內容存到內儲上。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在Nokia S40 6th下面，這個動作大約只要5~6秒，可是不知道為什麼？ 在JP8下面，居然要花整整5分鐘來做這件事。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;不曉得是不是在SE JP8的系統下，檔案的讀寫有特殊的設定要去處理？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;先謝謝大家了，小弟卡在這邊很久了。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0efdaed3-9d3b-4e73-8690-ecc3fe742bb9] --&gt;</description>
      <pubDate>Thu, 16 Jul 2009 06:40:20 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49327</guid>
      <dc:date>2009-07-16T06:40:20Z</dc:date>
      <clearspace:dateToText>3 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>说说平时都用什么来开发.交流交流经验！！</title>
      <link>http://developer.sonyericsson.com/community/thread/49609</link>
      <description>&lt;!-- [DocumentBodyStart:11b2ac90-cf96-49bf-b28e-091702b3498c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;大家来说说平时都用什么来开发吧，从IDE到开发使用的jar都说说:&lt;/p&gt;&lt;p&gt;&lt;br/&gt;我先来说一下我的：&lt;/p&gt;&lt;p&gt;我平时开发使用netbeans,虽然netbeans比较大，比较费资源，但是好用，什么都整合在一起了。而且netbean的SVN要比subclipse的插件好用得多，有修改的地方它会直接用颜色表明，一目了然，而在用eclipse时，就只能用compare这个功能了。&lt;/p&gt;&lt;p&gt;因为使用netbeans了，所以我使用netbean自带的宏功能，感觉还成，与IDE合在一起了，不过坏处也很明显，就是在eclipse下无法用，&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如果开发时有什么问题，我会去找开源的代码学习一下，比较它们的不同, 有时还会去看各个官方文档上看一下相关的文档，因为有些东西文档里面说得比较清楚：比如索爱官方的文档:&lt;/p&gt;&lt;h4 class="docidlink" style="margin-bottom: 0pt;"&gt;&lt;a class="jive-link-external-small" href="../getDocument.do?docId=91558"&gt;Java ME CLDC (MIDP2) 开发指南 适用于索尼爱立信手机(1,276 KB) &lt;br/&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;中有这么一个建议：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;        对于JP-8.x手机，强烈推荐不要以MMAPI使用GameCanvas, 而应当使用Canvas &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这在平时的一些文章中是很难看到的。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:11b2ac90-cf96-49bf-b28e-091702b3498c] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">j2me</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">开发经验</category>
      <pubDate>Wed, 02 Sep 2009 15:14:16 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49609</guid>
      <dc:date>2009-09-02T15:14:16Z</dc:date>
      <clearspace:dateToText>2 months, 5 days ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>索爱SDK2.5.0.6仍未支持运行Capuchin计划？</title>
      <link>http://developer.sonyericsson.com/community/thread/49959</link>
      <description>&lt;!-- [DocumentBodyStart:9b1a7849-c8f1-449a-b8d7-05c3bd41b09e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;下载了最新的SDK2.5.0.，在Eclispe下进行Capuchin计划项目的开发，能调用到Capuchin API的类，但运行时报错：&lt;/p&gt;&lt;p&gt;java.lang.NoClassDefFoundError: com/sonyericsson/capuchin/FlashCanvas&lt;br/&gt; at com.sun.midp.midlet.MIDletState.createMIDlet(+29)&lt;br/&gt; at com.sun.midp.midlet.Scheduler.schedule(+52)&lt;br/&gt; at com.sun.midp.main.Main.runLocalClass(+28)&lt;br/&gt; at com.sun.midp.main.Main.main(+80)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;换了几个模拟器也是一样。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;后来到SDK目录下找到了capuchin.jar，发现里面的函数并无具体实现，仅仅实现了框架...&lt;/p&gt;&lt;p&gt;&lt;a href="http://developer.sonyericsson.com/community/servlet/JiveServlet/showImage/2-128954-1760/capuchin.bmp"&gt;&lt;img alt="capuchin.bmp" class="jive-image-thumbnail jive-image" height="307" onclick="" src="http://developer.sonyericsson.com/community/servlet/JiveServlet/downloadImage/2-128954-1760/620-307/capuchin.bmp" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;请问目前是只能到真机上测试吗？还是SDK的包有问题？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9b1a7849-c8f1-449a-b8d7-05c3bd41b09e] --&gt;</description>
      <pubDate>Sun, 01 Nov 2009 11:29:05 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49959</guid>
      <dc:date>2009-11-01T11:29:05Z</dc:date>
      <clearspace:dateToText>2 weeks, 4 days ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>Display类的flashBacklight如何使用</title>
      <link>http://developer.sonyericsson.com/community/thread/49917</link>
      <description>&lt;!-- [DocumentBodyStart:822b51d9-1cd9-4ff7-9108-b9ca8b3a460e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Display.getDisplay(miDlet).flashBacklight(&lt;span style="font-family: Courier New;"&gt;int duration&lt;/span&gt;)&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:822b51d9-1cd9-4ff7-9108-b9ca8b3a460e] --&gt;</description>
      <pubDate>Fri, 23 Oct 2009 07:08:44 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49917</guid>
      <dc:date>2009-10-23T07:08:44Z</dc:date>
      <clearspace:dateToText>3 weeks, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>转自爽 陈：这种“手机盲打输入法”，请问能否在塞班系统上实现？</title>
      <link>http://developer.sonyericsson.com/community/thread/49499</link>
      <description>&lt;!-- [DocumentBodyStart:c47303ee-ee3a-451e-a3bc-b60d0c53bde9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;这是一个提问帖，应该发在讨论版而不是wiki中，我帮爽 陈网友转过来&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第一：请问能不能实现？  原因是什么？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第二：如果实现的话，那么该方法的优点是什么？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第三：缺点是什么？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如附件中的图。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://developer.sonyericsson.com/community/servlet/JiveServlet/showImage/2-127620-1583/%E6%89%8B%E6%9C%BA%E7%9B%B2%E6%89%93%E8%BE%93%E5%85%A5%E6%B3%955.jpg"&gt;&lt;img alt="手机盲打输入法5.jpg" class="jive-image" src="http://developer.sonyericsson.com/community/servlet/JiveServlet/downloadImage/2-127620-1583/%E6%89%8B%E6%9C%BA%E7%9B%B2%E6%89%93%E8%BE%93%E5%85%A5%E6%B3%955.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c47303ee-ee3a-451e-a3bc-b60d0c53bde9] --&gt;</description>
      <pubDate>Sun, 23 Aug 2009 12:46:48 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49499</guid>
      <dc:date>2009-08-23T12:46:48Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME W950内存使用问题-菜鸟求救</title>
      <link>http://developer.sonyericsson.com/community/thread/49339</link>
      <description>&lt;!-- [DocumentBodyStart:019861b1-511c-4d63-ac4a-a5e70c3aa5dd] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;      我在使用eclipse开发图像处理程序的时候，使用了W950作为模拟器，产品说明书里面W950是具有4G的内存的。可是我在代码里面使用&lt;/p&gt;&lt;p&gt;long free=Runtime.getRuntime().freeMemory();&lt;br/&gt;long total=Runtime.getRuntime().totalMemory();来获取内存信息的时候。&lt;/p&gt;&lt;p&gt;发现只有（我声明了几个Double类型的数组）：&lt;/p&gt;&lt;p&gt;*******total==2097152&lt;br/&gt;*******free==486924&lt;/p&gt;&lt;p&gt;这明显和4G内存不符。不知道是什么原因~最近才刚刚开始弄j2ME。希望大家赐教。。。。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:019861b1-511c-4d63-ac4a-a5e70c3aa5dd] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">内存优化</category>
      <pubDate>Sat, 18 Jul 2009 07:40:58 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49339</guid>
      <dc:date>2009-07-18T07:40:58Z</dc:date>
      <clearspace:dateToText>3 months, 4 days ago</clearspace:dateToText>
      <clearspace:messageCount>11</clearspace:messageCount>
      <clearspace:replyCount>10</clearspace:replyCount>
    </item>
    <item>
      <title>论坛意见征集</title>
      <link>http://developer.sonyericsson.com/community/thread/49446</link>
      <description>&lt;!-- [DocumentBodyStart:502a53f3-065f-4dea-8937-79b169185db9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;strong&gt;hi,各位，“索尼爱立信开发者世界”倾诉月活动已经正式开式了，如果有什么问题，请畅所欲言，如果对论坛有什么好的意见，也欢迎提出！！！只要是我们能解决的，我们会尽力解决&lt;br/&gt;&lt;/strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:502a53f3-065f-4dea-8937-79b169185db9] --&gt;</description>
      <pubDate>Sat, 15 Aug 2009 13:21:55 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49446</guid>
      <dc:date>2009-08-15T13:21:55Z</dc:date>
      <clearspace:dateToText>3 months, 4 days ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>java3d的问题：如何提取M3G文件中的MESH对象？</title>
      <link>http://developer.sonyericsson.com/community/thread/49740</link>
      <description>&lt;!-- [DocumentBodyStart:fd0343e9-9afe-4874-96f1-585f2569e0d2] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="text-align: left;"&gt;通过Object3d数组读取M3G文件的后可以得到World对象，但如何再从中得到Mesh对象呢？&lt;/p&gt;&lt;p style="text-align: left;"&gt;谢谢大家。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:fd0343e9-9afe-4874-96f1-585f2569e0d2] --&gt;</description>
      <pubDate>Sun, 20 Sep 2009 13:28:08 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49740</guid>
      <dc:date>2009-09-20T13:28:08Z</dc:date>
      <clearspace:dateToText>2 months, 15 hours ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>SonyEricsson支持的video格式有哪些？有除了SUN J2ME之外的专有API么？</title>
      <link>http://developer.sonyericsson.com/community/thread/49613</link>
      <description>&lt;!-- [DocumentBodyStart:a90584ac-0f29-4fb1-82ed-95a9769395f0] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Q1.  SonyEricsson支持的video格式有哪些？例如H263, H264以及相应的profile level等指标。&lt;/p&gt;&lt;p&gt;Q2.  BlackBerry的开发有RIM提供的专有API，那么除了SUN J2ME之外，SonyEricsson有专有API么？&lt;/p&gt;&lt;p&gt;Q3.  Nokia有widget的开发部署，那么SonyEricsson在Web2.0上有什么独特之处么？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a90584ac-0f29-4fb1-82ed-95a9769395f0] --&gt;</description>
      <pubDate>Thu, 03 Sep 2009 08:40:00 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49613</guid>
      <dc:date>2009-09-03T08:40:00Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>支持Capuchin 的手机有哪些？</title>
      <link>http://developer.sonyericsson.com/community/thread/49459</link>
      <description>&lt;!-- [DocumentBodyStart:2ab24804-b322-49de-9997-6d7c3036a271] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;支持Capuchin 的手机有哪些？&lt;/p&gt;&lt;p&gt;是否全部JP8平台以上都支持？&lt;/p&gt;&lt;p&gt;J2ME 的Capuchin能播放普通Flash吗，比如电脑上的Flash&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:2ab24804-b322-49de-9997-6d7c3036a271] --&gt;</description>
      <pubDate>Wed, 19 Aug 2009 02:00:01 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49459</guid>
      <dc:date>2009-08-19T02:00:01Z</dc:date>
      <clearspace:dateToText>3 months, 5 days ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>版主介绍;冬眠</title>
      <link>http://developer.sonyericsson.com/community/thread/49466</link>
      <description>&lt;!-- [DocumentBodyStart:f2964a94-8908-4026-8646-f2a9877934f7] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;hi,大家好，我是冬眠，很荣幸成为索尼爱立信J2ME版主之一，我现在了在一家手机软件开发公司工作，我对编译原理，UI库比较感兴趣，有欢迎有兴趣的同学来索尼爱立信j2me版交流。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f2964a94-8908-4026-8646-f2a9877934f7] --&gt;</description>
      <pubDate>Wed, 19 Aug 2009 13:04:13 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49466</guid>
      <dc:date>2009-08-19T13:04:13Z</dc:date>
      <clearspace:dateToText>3 months, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>关于SE 获取可用的总内存不准的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/49349</link>
      <description>&lt;!-- [DocumentBodyStart:42776331-922d-4636-9a7d-e19e507607ac] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;关于SE 获取可用的总内存不准的问题&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;利用下面代码获取SE 手机可用的总内存，&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;long iLarge = 0L;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;    Vector vector = new Vector(256);&lt;/p&gt;&lt;p&gt;    public   void gc()&lt;/p&gt;&lt;p&gt;   {&lt;/p&gt;&lt;p&gt;       System.gc();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;       int count  = 0;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;       System.gc();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;       try&lt;/p&gt;&lt;p&gt;       {&lt;/p&gt;&lt;p&gt;           while(vector.size() &amp;lt;= u_int_static_fld)&lt;/p&gt;&lt;p&gt;           {&lt;/p&gt;&lt;p&gt;               vector.addElement(new byte[8192]);&lt;/p&gt;&lt;p&gt;               count++;&lt;/p&gt;&lt;p&gt;           }&lt;/p&gt;&lt;p&gt;       }&lt;/p&gt;&lt;p&gt;       catch(Throwable t)&lt;/p&gt;&lt;p&gt;       {&lt;/p&gt;&lt;p&gt;           System.gc();&lt;/p&gt;&lt;p&gt;           iForm.append(t.toString());&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;       }&lt;/p&gt;&lt;p&gt;       iLarge = 8192 * count;//java的内存大小&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;      iLarge = Math.max(iLarge, Runtime.getRuntime().totalMemory());//java的内存大小&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;   发现iLarge 大于totalMemory（） 为何什么？&lt;/p&gt;&lt;p&gt;实际使用的时候也发现只能用totalMemory，这有是为什么。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;查看了索爱的官方文档说，byte[]数据块是会存储到一个叫&lt;/p&gt;&lt;p&gt;Java 应用程序使用两种堆：普通 Java 堆和 LAM （大数组记忆库）&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我该怎么利用大数组记忆库？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;有没有高手回答我的问题。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;此问题表现在SE 的 K750上&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:42776331-922d-4636-9a7d-e19e507607ac] --&gt;</description>
      <pubDate>Wed, 22 Jul 2009 07:03:23 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49349</guid>
      <dc:date>2009-07-22T07:03:23Z</dc:date>
      <clearspace:dateToText>3 months, 5 days ago</clearspace:dateToText>
      <clearspace:messageCount>7</clearspace:messageCount>
      <clearspace:replyCount>6</clearspace:replyCount>
    </item>
    <item>
      <title>版主介绍：Forrest.He</title>
      <link>http://developer.sonyericsson.com/community/thread/49445</link>
      <description>&lt;!-- [DocumentBodyStart:54e77ee1-ab26-44b0-83ac-899001f6418e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Hi，大家好，我是Forrest，是索爱开发者世界中文论坛Java ME版的版主，我的ID是Forrest.He。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我是一名移动增值服务程序开发者，很高兴开发者论坛能够在我的专业方向上提供一个为大家服务的平台。我想，通过这个平台，我会尽自己所能为大家提供关于Java ME开发方面的帮助，因为论坛的本质在于，通过讨论让每个人的idea得以共享，让精华idea得以挖掘闪光，帮助他人的同时自己也得到了提高。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;所以，欢迎大家加入这个论坛，欢迎大家来这里发表自己的idea，提出自己的issue。我希望和每一位移动开发者成为朋友。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span id="reply_content_84882255"&gt;&lt;pre&gt;Best Regards&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Forrest&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:54e77ee1-ab26-44b0-83ac-899001f6418e] --&gt;</description>
      <pubDate>Sat, 15 Aug 2009 03:40:14 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49445</guid>
      <dc:date>2009-08-15T03:40:14Z</dc:date>
      <clearspace:dateToText>3 months, 5 days ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>MIDP3.0规范什么时候能出来呢？</title>
      <link>http://developer.sonyericsson.com/community/thread/49432</link>
      <description>&lt;!-- [DocumentBodyStart:56f9e071-9b25-4705-a7b1-448fc2c69ce2] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;   MIDP规范该更新了啊&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:56f9e071-9b25-4705-a7b1-448fc2c69ce2] --&gt;</description>
      <pubDate>Wed, 12 Aug 2009 10:41:23 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49432</guid>
      <dc:date>2009-08-12T10:41:23Z</dc:date>
      <clearspace:dateToText>3 months, 6 days ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>有关P1c，和其它索爱手机的对jsr135和jsr234中的video capture功能疑问</title>
      <link>http://developer.sonyericsson.com/community/thread/46180</link>
      <description>&lt;!-- [DocumentBodyStart:eba982f0-6160-4788-b265-28ded52e6ef9] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;您好最近一直在做手机移植，但是一直过程中出现了不少的问题，我首先测试的平台是s60 3rd 这个测试的没问题，对jsr135支持的相当好，拍照功能支持的还不错，&lt;/p&gt;&lt;p&gt;但是在做索爱的时候，首先就手头上有个P1c调用mPlayer = Manager.createPlayer("capture://video")这个函数的过程中始终都启动不了摄像头，要么是空白的，要么程序就&lt;/p&gt;&lt;p&gt;打不开，后来我又做了个testcamera，测试代码是这样的：&lt;/p&gt;&lt;p&gt;in a List：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t1 = System.getProperty("supports.video.capture");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t2 = System.getProperty("microedition.platform");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t3 = System.getProperty("supports.mediacapabilities ");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t4 = System.getProperty("microedition.amms.version ");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t5 = System.getProperty("microedition.media.version");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t6 = System.getProperty("supports.mixing");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t7 = System.getProperty("supports.audio.capture");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t8 = System.getProperty("supports.recording");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t9 = System.getProperty("audio.encodings");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t10 = System.getProperty("video.encodings");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String t11 = System.getProperty("streamable.contents");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("video.capture:"+t1, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("platform:"+t2, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("mediacapabilities:"+t3, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("amms.version:"+t4, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("media.version:"+t5, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("mixing:"+t6, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("audio.capture:"+t7, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("recording:"+t8, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("audio.encodings"+t9, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("video.encodings:"+t10, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("streamable.contents"+t11, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append("End", null);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;然后我得到的结果是这样的：&lt;/p&gt;&lt;p&gt;video.capture:false&lt;/p&gt;&lt;p&gt;platform:SonyEricssonP1i/R6D23&lt;/p&gt;&lt;p&gt;mediacapabilities:null&lt;/p&gt;&lt;p&gt;amms.version:null&lt;/p&gt;&lt;p&gt;media.version:1.1&lt;/p&gt;&lt;p&gt;mixing:false&lt;/p&gt;&lt;p&gt;audio.capture:false&lt;/p&gt;&lt;p&gt;recording:false&lt;/p&gt;&lt;p&gt;audio.encodings:null&lt;/p&gt;&lt;p&gt;video.encodings:null&lt;/p&gt;&lt;p&gt;streamable.contents:null&lt;/p&gt;&lt;p&gt;End&lt;/p&gt;&lt;p&gt;&lt;span&gt;但是我在官方文档里面找的：P1c（&lt;/span&gt;&lt;a class="jive-link-external-small" href="https://developer.sonyericsson.com/device/loadDevice.do?id=7ad991dd-bb89-4c2b-a5fa-b183d878938f）"&gt;https://developer.sonyericsson.com/device/loadDevice.do?id=7ad991dd-bb89-4c2b-a5fa-b183d878938f）&lt;/a&gt;&lt;/p&gt;&lt;p&gt;支持：&lt;/p&gt;&lt;p&gt;JSR &lt;/p&gt;&lt;p&gt;CLDC 1.1 &lt;/p&gt;&lt;p&gt;WMA (JSR-120) &lt;/p&gt;&lt;p&gt;MMAPI(JSR-135) &lt;/p&gt;&lt;p&gt;Webservices (JSR-172) &lt;/p&gt;&lt;p&gt;Mobile 3D(JSR-184) &lt;/p&gt;&lt;p&gt;Java Technology for the Wireless Industry(JSR-185) &lt;/p&gt;&lt;p&gt;WMA 2.0(JSR-205) &lt;/p&gt;&lt;p&gt;SVG(JSR 226) &lt;/p&gt;&lt;p&gt;Payment API (JSR 229) &lt;/p&gt;&lt;p&gt;File/PIM(JSR-75) &lt;/p&gt;&lt;p&gt;Bluetooth(JSR-82) &lt;/p&gt;&lt;p&gt;Nokia UI API 1.1 &lt;/p&gt;&lt;p&gt;确实不支持jsr234，但是为什么jsr135 ”media.version:1.1“支持，但是后面的测试结果要么是false，要么就是null，那就出现了支持和不支持没有什么区别了。&lt;/p&gt;&lt;p&gt;我的相机代码是这样的：camera code：&lt;/p&gt;&lt;p&gt;public void ShowCamera()&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mPlayer = Manager.createPlayer("capture://video");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mPlayer.realize();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl = (VideoControl) mPlayer.getControl("VideoControl");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (IOException e)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (MediaException e)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mVideoControl != null)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl.setDisplayLocation(0, 8);// /getHeight()&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// / 8&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl.setDisplaySize(getWidth(), getHeight() - 40);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl.setDisplayFullScreen(false);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Exception e)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mPlayer.start();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mVideoControl.setVisible(true);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (MediaException e)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CameraData.isActive = true;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;repaint();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println("this is right");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;p&gt;&lt;span&gt;是不是P1c不支持拍照呢，还是其它原因呢，还有我想问想其它sonyEricsson的手机对照相功能支持的，怎么样的，Thank you by my heart,我的MSN是&lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:liplke1224@yahoo.com.cn"&gt;liplke1224@yahoo.com.cn&lt;/a&gt;&lt;span&gt;，if you know please&lt;/span&gt;&lt;/p&gt;&lt;p&gt;tell me thank you&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:eba982f0-6160-4788-b265-28ded52e6ef9] --&gt;</description>
      <pubDate>Thu, 04 Sep 2008 08:05:07 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46180</guid>
      <dc:date>2008-09-04T08:05:07Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>检测所啊的手机是否是动态内存？</title>
      <link>http://developer.sonyericsson.com/community/thread/49321</link>
      <description>&lt;!-- [DocumentBodyStart:f97d8b4e-859c-487a-993f-32bf04f181ea] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;最近开发的过程中遇到了一个问题，就是索爱的内存堆栈是动态的，程序在对内存回收的时候不知道如何处理。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我的问题有2个：&lt;/p&gt;&lt;p&gt;1. 有没有办法知道，动态内存最小内存（就是启动的时候），和最大使用多少内存。&lt;/p&gt;&lt;p&gt;2. 如何检测当前的时候是动态内存的。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f97d8b4e-859c-487a-993f-32bf04f181ea] --&gt;</description>
      <pubDate>Wed, 15 Jul 2009 07:21:44 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49321</guid>
      <dc:date>2009-07-15T07:21:44Z</dc:date>
      <clearspace:dateToText>3 months, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>6</clearspace:messageCount>
      <clearspace:replyCount>5</clearspace:replyCount>
    </item>
    <item>
      <title>J2me里如何强制让X1屏幕横过来</title>
      <link>http://developer.sonyericsson.com/community/thread/49667</link>
      <description>&lt;!-- [DocumentBodyStart:f083e3a7-b9ca-403e-874c-b22073bf5106] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;当把X1的屏幕横过来的时候屏幕会自动切换为纵向的，如何让他不转过来，始终是横向的，这样用户在需要输入文字的时候比较方便。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f083e3a7-b9ca-403e-874c-b22073bf5106] --&gt;</description>
      <pubDate>Thu, 10 Sep 2009 09:07:11 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49667</guid>
      <dc:date>2009-09-10T09:07:11Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>索爱运行游戏后，白屏，重起的怪异现象！</title>
      <link>http://developer.sonyericsson.com/community/thread/49682</link>
      <description>&lt;!-- [DocumentBodyStart:27c0f8bf-af4d-44f1-abb7-ecd6f205680d] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;最近在移植的过程中发现两只索爱K800 的手机 ，一只是行货，完美运行；还有一只是同事的，听说曾刷过机；下面我就来说说这个刷机的K800的怪异现象；&lt;/p&gt;&lt;p&gt;1.在paint画图中调用System.gc()，直接白屏&lt;/p&gt;&lt;p&gt;2.读取大数据的时候或者线程阻塞的时候，白屏，重起，这里包括开启新线程，IO操作等等。&lt;/p&gt;&lt;p&gt;我怀疑是JVM内存释放存在一定的问题，目前打印看使用内存800K~1M,打印的手机heap最大值是1.5m，不知道大家是否遇到过类似的请，有经验的请说下，解决方法，谢谢！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:27c0f8bf-af4d-44f1-abb7-ecd6f205680d] --&gt;</description>
      <pubDate>Sun, 13 Sep 2009 04:50:00 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49682</guid>
      <dc:date>2009-09-13T04:50:00Z</dc:date>
      <clearspace:dateToText>1 month, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>11</clearspace:messageCount>
      <clearspace:replyCount>10</clearspace:replyCount>
    </item>
    <item>
      <title>java.lang.noclassdeffounderror:memory 错误</title>
      <link>http://developer.sonyericsson.com/community/thread/49350</link>
      <description>&lt;!-- [DocumentBodyStart:576efa33-5ccf-4c91-a6f4-f0d54a6b0cf4] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;java.lang.noclassdeffounderror:memory 是啥意思啊。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:576efa33-5ccf-4c91-a6f4-f0d54a6b0cf4] --&gt;</description>
      <pubDate>Wed, 22 Jul 2009 08:38:01 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49350</guid>
      <dc:date>2009-07-22T08:38:01Z</dc:date>
      <clearspace:dateToText>4 months, 2 days ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>GPRS网络下采用UDP发送数据</title>
      <link>http://developer.sonyericsson.com/community/thread/49511</link>
      <description>&lt;!-- [DocumentBodyStart:3674d8c2-ece3-42bd-ba3e-6324a4d3aa27] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;mobile 6.5的系统，想在手机端发送一些数据到电脑端。 采用UDP来通信。 如果手机采用cmnet上网没有问题可以正常通讯。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但如果手机采用cmwap上网却失败，电脑端收不到数据，请问是怎么回事？谢谢&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3674d8c2-ece3-42bd-ba3e-6324a4d3aa27] --&gt;</description>
      <pubDate>Wed, 26 Aug 2009 03:12:52 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49511</guid>
      <dc:date>2009-08-26T03:12:52Z</dc:date>
      <clearspace:dateToText>2 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>6</clearspace:messageCount>
      <clearspace:replyCount>5</clearspace:replyCount>
    </item>
    <item>
      <title>手机游戏的问题，麻烦各位高手了！！！</title>
      <link>http://developer.sonyericsson.com/community/thread/49091</link>
      <description>&lt;!-- [DocumentBodyStart:8891122b-4d8b-4f2d-992a-b6cc3f5cfd5c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;开发工具：eclipse 3.2 &lt;br/&gt;开发语言：java &lt;br/&gt;问题描述：我写了一个手机小游戏，在eclipse中可以运行，我想生成jar包，但不知道具体步骤，请高手说明一下&lt;span style="color: #ff0000;"&gt;具体步骤&lt;/span&gt;，另外解释一下jar包和jad文件分别是干什么的？我要怎么做才能生成jar包，并且可以在手机中运行？尽量&lt;span style="color: #ff0000;"&gt;具体&lt;/span&gt;哈！！！！谢谢！！！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8891122b-4d8b-4f2d-992a-b6cc3f5cfd5c] --&gt;</description>
      <pubDate>Wed, 27 May 2009 08:50:16 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49091</guid>
      <dc:date>2009-05-27T08:50:16Z</dc:date>
      <clearspace:dateToText>3 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>7</clearspace:messageCount>
      <clearspace:replyCount>6</clearspace:replyCount>
    </item>
    <item>
      <title>W595播放流媒体不能返回END_OF_MEDIA</title>
      <link>http://developer.sonyericsson.com/community/thread/49489</link>
      <description>&lt;!-- [DocumentBodyStart:c62fcb3e-380d-48cb-9ed5-112784856e04] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span lang="ZH-CN" style="font-size: 10pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;如果没有&lt;span style="font-size: 10pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"&gt;END_OF_MEDIA事件返回，怎么办？&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c62fcb3e-380d-48cb-9ed5-112784856e04] --&gt;</description>
      <pubDate>Fri, 21 Aug 2009 06:45:26 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49489</guid>
      <dc:date>2009-08-21T06:45:26Z</dc:date>
      <clearspace:dateToText>3 months, 15 hours ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>关于游戏中精灵走路的细节问题</title>
      <link>http://developer.sonyericsson.com/community/thread/49088</link>
      <description>&lt;!-- [DocumentBodyStart:40fa96ac-1a8a-46f9-84ff-5e7cb508c131] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;使用getKeyStates()方法放在run（）里面 &lt;br/&gt;可以实现在一直按住按键的情况下 &lt;br/&gt;持续走路并且循环切换走路的状态帧 &lt;br/&gt;但是有一个问题是 &lt;br/&gt;我想实现当每次按键放下的时候 &lt;br/&gt;精灵都是在站立状态的那帧 &lt;br/&gt;需要使用什么方法&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:40fa96ac-1a8a-46f9-84ff-5e7cb508c131] --&gt;</description>
      <pubDate>Wed, 27 May 2009 07:33:56 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49088</guid>
      <dc:date>2009-05-27T07:33:56Z</dc:date>
      <clearspace:dateToText>3 months, 5 days ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>请教J2ME怎么样设置手机短信中心号码（不用AT指令）</title>
      <link>http://developer.sonyericsson.com/community/thread/48652</link>
      <description>&lt;!-- [DocumentBodyStart:7a3f3c7f-7928-4337-a203-6c312d6b0a2e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;请问一下J2ME怎么样设置手机短心中心号码？ 不用AT指令，因为我担心不是所有支持J2ME的SE手机都支持设置手机短信中心号码的AT指令。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7a3f3c7f-7928-4337-a203-6c312d6b0a2e] --&gt;</description>
      <pubDate>Thu, 12 Mar 2009 01:39:52 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48652</guid>
      <dc:date>2009-03-12T01:39:52Z</dc:date>
      <clearspace:dateToText>7 months, 2 days ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>PDU 中User Agent代表什么意思？</title>
      <link>http://developer.sonyericsson.com/community/thread/49535</link>
      <description>&lt;!-- [DocumentBodyStart:edfaad0c-53ef-4204-9400-388274bfd07f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我在开发之中遇到了一个问题，PDU   中User   Agent代表什么意思？通过阅读WAP   forum   中关于WAP的协议文档，理解的也不是很清楚。据我理解它可能有以下几个意思： &lt;br/&gt;1.在客户移动终端中的   软件 &lt;br/&gt;2.在客户移动终端发送给   wap网关中的计数器。 &lt;br/&gt;&lt;br/&gt;    不知道我的理解是否正确，请大家指正。谢谢。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:edfaad0c-53ef-4204-9400-388274bfd07f] --&gt;</description>
      <pubDate>Wed, 26 Aug 2009 06:59:54 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49535</guid>
      <dc:date>2009-08-26T06:59:54Z</dc:date>
      <clearspace:dateToText>2 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>J2me里如何响应G900屏幕下方的那三个触摸按键？</title>
      <link>http://developer.sonyericsson.com/community/thread/49668</link>
      <description>&lt;!-- [DocumentBodyStart:ff4d6769-ee98-4b79-b7bf-10e290962a37] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;G900的左右软件变成了便签和短信的功能快捷键，一按就切出去了，屏幕下方的那三个触摸按键一碰程序就会自动退出，&lt;/p&gt;&lt;p&gt;但是看手机里内置的那个数独的游戏，他那个可以按那三个键，不知道怎么做的。&lt;/p&gt;&lt;p&gt;谢谢&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ff4d6769-ee98-4b79-b7bf-10e290962a37] --&gt;</description>
      <pubDate>Thu, 10 Sep 2009 09:11:12 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49668</guid>
      <dc:date>2009-09-10T09:11:12Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>初学J2ME，应该怎么做</title>
      <link>http://developer.sonyericsson.com/community/thread/49603</link>
      <description>&lt;!-- [DocumentBodyStart:15c258f5-48ee-41e7-8520-c2447942bdb3] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;一直对JAVA的三大组成很有兴趣，学了J2SE有段时间了&lt;/p&gt;&lt;p&gt;现在在用J2EE做网站开发，对J2ME可以说是什么都不知道的感觉&lt;/p&gt;&lt;p&gt;请问下，有J2SE基础的，怎么学J2NE呢？从那些方面入手，需要看那些书？&lt;/p&gt;&lt;p&gt;有的好推荐下，也有没得好的入门论坛，谢谢。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:15c258f5-48ee-41e7-8520-c2447942bdb3] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">j2ee</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">入门</category>
      <pubDate>Wed, 02 Sep 2009 07:27:21 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49603</guid>
      <dc:date>2009-09-02T07:27:21Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>索尼爱立信的手机是否支持共享连接？</title>
      <link>http://developer.sonyericsson.com/community/thread/49542</link>
      <description>&lt;!-- [DocumentBodyStart:9e92c860-4cf7-464d-ba14-8ada448373bc] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;就是多个程序是否可以同时使用一个cmnet/cmwap进行数据链接？还是必须断掉一个，依次连接？比如我cmwap下载文件的时候，彩信能否同时下载？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9e92c860-4cf7-464d-ba14-8ada448373bc] --&gt;</description>
      <pubDate>Wed, 26 Aug 2009 07:16:53 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49542</guid>
      <dc:date>2009-08-26T07:16:53Z</dc:date>
      <clearspace:dateToText>2 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>8</clearspace:messageCount>
      <clearspace:replyCount>7</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME程序如何应用到桌面？</title>
      <link>http://developer.sonyericsson.com/community/thread/49200</link>
      <description>&lt;!-- [DocumentBodyStart:9f59d47e-756f-42c4-a2cd-83d971dcc2f0] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;        不好意思，之前网速太卡了，帖子发错地方了，在这里重新发一个。&lt;/p&gt;&lt;p&gt;               我问过很多人J2ME的程序如何应用到桌面上，可他们说SUN对这块没开放，做不了。但我在一款索爱的手机上看到了一款J2ME的程序，点击直接设成墙纸。我想知道这中程序是怎么做的，如果知道请告诉我，谢谢~&lt;/p&gt;&lt;p&gt;                MSN:   &lt;a class="jive-link-email-small" href="mailto:haogewudicch@hotmail.com"&gt;haogewudicch@hotmail.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;                QQ:     582002387&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9f59d47e-756f-42c4-a2cd-83d971dcc2f0] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">桌面</category>
      <pubDate>Fri, 12 Jun 2009 10:18:43 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49200</guid>
      <dc:date>2009-06-12T10:18:43Z</dc:date>
      <clearspace:dateToText>4 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>Impact factor</title>
      <link>http://developer.sonyericsson.com/community/thread/49574</link>
      <description>&lt;!-- [DocumentBodyStart:a5aa7744-bbe9-4bec-84eb-ba2b719bb277] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;span style="background-color: #f8fafd;"&gt;&lt;p&gt;In a given year, the impact factor of a journal is the average number of citations to those papers that were published during the two preceding years. For example, the 2003 impact factor of a journal would be calculated as follows:&lt;/p&gt;&lt;dl&gt;&lt;dd&gt;&lt;em&gt;A&lt;/em&gt; = the number of times articles published in 2001 and 2002 were cited by indexed journals during 2003 &lt;/dd&gt;&lt;dd&gt;&lt;em&gt;B&lt;/em&gt; = the total number of "citable items" published in 2001 and 2002. ("Citable items" are usually articles, reviews, proceedings, or notes; not editorials or Letters-to-the-Editor.) &lt;/dd&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dd&gt;2003 impact factor = &lt;em&gt;A&lt;/em&gt;/&lt;em&gt;B&lt;/em&gt; &lt;/dd&gt;&lt;/dl&gt;&lt;p&gt;(Note that 2003 impact factors are actually published in 2004; it cannot be calculated until all of the 2003 publications had been received by the indexing agency.)&lt;/p&gt;&lt;p&gt;New journals, which are indexed from their first published issue, will receive an impact factor after two years of indexing; in this case, the citations to the year prior to Volume 1, and the number of articles published in the year prior to Volume 1 are known zero values. Journals that are indexed starting with a volume other than the first volume will not get an impact factor until they have been indexed for three years. Annuals and other irregular publications, will sometimes publish no items in a particular year, affecting the count. The impact factor relates to a specific time period; it is possible to calculate it for any desired period and the &lt;em&gt;Journal Citation Reports&lt;/em&gt; (JCR) also includes a 5-year impact factorThe JCR shows rankings of journals by impact factor, if desired by discipline, such as&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a5aa7744-bbe9-4bec-84eb-ba2b719bb277] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">conle</category>
      <pubDate>Fri, 28 Aug 2009 13:19:41 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49574</guid>
      <dc:date>2009-08-28T13:19:41Z</dc:date>
      <clearspace:dateToText>2 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>我想做一个简单的uiwebview加载一个网页怎么弄？</title>
      <link>http://developer.sonyericsson.com/community/thread/49781</link>
      <description>&lt;!-- [DocumentBodyStart:1c442f00-35a2-407d-b52e-21614b9ebee3] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;现在有一个简单的应用，就是打开一个网页，然后打开默认的网站，请问怎么写代码？  &lt;br/&gt;麻烦详细一点，因为我是刚学iphone，但这个程序是马上要用，所以急，谢谢了 &lt;br/&gt;我知道非常简单，也就一两行代码，但不知道该在什么地方写这个代码  &lt;br/&gt;请朋友们给个帮手，说详细一点，比如说在哪个文件的什么地方写代码，因为cocoa编程我完全是外行，昨天刚弄xcode，才基本熟悉ide。  &lt;br/&gt;要是有朋友能把代码发给我就万谢了。conis.yi(at)gmail.com&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1c442f00-35a2-407d-b52e-21614b9ebee3] --&gt;</description>
      <pubDate>Wed, 23 Sep 2009 03:08:20 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49781</guid>
      <dc:date>2009-09-23T03:08:20Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>如何解决J2ME和PHP服务器通讯时的中文问题？</title>
      <link>http://developer.sonyericsson.com/community/thread/49577</link>
      <description>&lt;!-- [DocumentBodyStart:79707916-5e74-46f5-84c9-caaf9e5a29a1] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;   据说索爱的K700和S700C不支持如下代码：&lt;/p&gt;&lt;p&gt;           String s = new String(b,"UTF-8");&lt;/p&gt;&lt;p&gt;   那么请问如何解决好中文问题呢，谢谢！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:79707916-5e74-46f5-84c9-caaf9e5a29a1] --&gt;</description>
      <pubDate>Wed, 02 Sep 2009 17:54:29 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49577</guid>
      <dc:date>2009-09-02T17:54:29Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>7</clearspace:messageCount>
      <clearspace:replyCount>6</clearspace:replyCount>
    </item>
    <item>
      <title>执行sql语句出错</title>
      <link>http://developer.sonyericsson.com/community/thread/49718</link>
      <description>&lt;!-- [DocumentBodyStart:f2906471-cade-4bc4-9b13-8da2eaadc6ef] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我在看EVC高级编程及其应用开发第八章的时候，连接和打开access数据库，然后执行sql语句都可以，但是我连接并打开sdf数据库后执行查询，报执行失败的错误，弄了很久不知道哪里错了，哪位大哥帮忙看看。 &lt;br/&gt;HRESULT hr; &lt;br/&gt;VARIANT varStrSql,varEmpty; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;VariantInit(&amp;amp;varStrSql); &lt;br/&gt;VariantInit(&amp;amp;varEmpty); &lt;br/&gt;LPCTSTR execsql="SELECT * FROM UserName"; &lt;br/&gt;varStrSql.bstrVal=SysAllocString(execsql); &lt;br/&gt;varStrSql.vt=VT_BSTR; &lt;br/&gt;hr=m_pADOCERS-&amp;gt;Open(varStrSql,varEmpty,MSADOCE::adOpenDynamic,MSADOCE::adLockOptimistic,MSADOCE::adCmdText); &lt;br/&gt;在调用上面的Open的时候失败。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f2906471-cade-4bc4-9b13-8da2eaadc6ef] --&gt;</description>
      <pubDate>Fri, 18 Sep 2009 08:06:30 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49718</guid>
      <dc:date>2009-09-18T08:06:30Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>高分求如何实现短距离无线定位技术</title>
      <link>http://developer.sonyericsson.com/community/thread/49770</link>
      <description>&lt;!-- [DocumentBodyStart:5309b8cb-2ecb-4cef-84af-6c69e5e1837b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;目前有一个需求是在室内 有多个终端设备,一个主机. &lt;br/&gt;当终端设备离主机10米的时候报警一次,离20米的时候报警一次.  &lt;br/&gt;是否要采用短距离无线定位技术才能实现 还是其他方式也可以实现? &lt;br/&gt;最好有成功解决方案.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5309b8cb-2ecb-4cef-84af-6c69e5e1837b] --&gt;</description>
      <pubDate>Wed, 23 Sep 2009 02:33:32 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49770</guid>
      <dc:date>2009-09-23T02:33:32Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>关于Java me SDK3.0的中文问题</title>
      <link>http://developer.sonyericsson.com/community/thread/49112</link>
      <description>&lt;!-- [DocumentBodyStart:3ec7b51a-5874-4329-97f0-dec99ed0a2f2] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;如题 &lt;br/&gt;Java me SDK3.0中编码 &lt;br/&gt;我直接System.out.println("中文"); &lt;br/&gt;在控制台输出的都是问号....有人遇到这样的问题吗???&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3ec7b51a-5874-4329-97f0-dec99ed0a2f2] --&gt;</description>
      <pubDate>Wed, 27 May 2009 08:54:33 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49112</guid>
      <dc:date>2009-05-27T08:54:33Z</dc:date>
      <clearspace:dateToText>5 months, 4 days ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>索爱C702在j2me中如何获取摄像头预览的时的图片，也就是实现快速拍照。</title>
      <link>http://developer.sonyericsson.com/community/thread/49159</link>
      <description>&lt;!-- [DocumentBodyStart:695a93bd-e29d-469d-a902-49eaea7c3582] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;索爱C702在j2me中如何获取摄像头预览的时的图片，也就是实现快速拍照，并且不需要有拍照声音，目的是不停的对拍照图片进行识别，当识别成功了则退出拍照。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:695a93bd-e29d-469d-a902-49eaea7c3582] --&gt;</description>
      <pubDate>Thu, 04 Jun 2009 06:49:21 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49159</guid>
      <dc:date>2009-06-04T06:49:21Z</dc:date>
      <clearspace:dateToText>3 months, 6 days ago</clearspace:dateToText>
      <clearspace:messageCount>7</clearspace:messageCount>
      <clearspace:replyCount>6</clearspace:replyCount>
    </item>
    <item>
      <title>j2me连网线程，如何获得返回值！</title>
      <link>http://developer.sonyericsson.com/community/thread/49199</link>
      <description>&lt;!-- [DocumentBodyStart:d48de727-bdb5-4b36-889c-b5245e99a28b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;比如代码如下&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class outer &lt;br/&gt;{ &lt;br/&gt;    private String result;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;    public outer() &lt;br/&gt;  { &lt;br/&gt;      Thread t = new Thread(new inner ()); &lt;br/&gt;      t.start(); &lt;br/&gt;  }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;class inner implements Runnable &lt;br/&gt;{ &lt;br/&gt;  public void run() &lt;br/&gt;  { &lt;br/&gt;      result = "result"; &lt;br/&gt;    }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如何在另外一类中获得 该类里 result 的 内容？谢谢&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public void run(){ &lt;br/&gt;&lt;br/&gt;  //在这里面得到的信息 如何 这各类外 获得 返回值？ &lt;br/&gt;&lt;br/&gt;} &lt;br/&gt;&lt;br/&gt;请问各位高手！ &lt;br/&gt;&lt;br/&gt;该类里得到的信息 如何 这各类外 获得 返回值？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d48de727-bdb5-4b36-889c-b5245e99a28b] --&gt;</description>
      <pubDate>Fri, 12 Jun 2009 09:06:26 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49199</guid>
      <dc:date>2009-06-12T09:06:26Z</dc:date>
      <clearspace:dateToText>3 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME下能向手机内置Modem发送AT命令吗？</title>
      <link>http://developer.sonyericsson.com/community/thread/48334</link>
      <description>&lt;!-- [DocumentBodyStart:06147e7c-b259-4e65-98da-12d221551a23] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;J2ME下能向手机内置Modem发送AT命令吗？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:06147e7c-b259-4e65-98da-12d221551a23] --&gt;</description>
      <pubDate>Fri, 13 Feb 2009 04:59:34 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48334</guid>
      <dc:date>2009-02-13T04:59:34Z</dc:date>
      <clearspace:dateToText>7 months, 2 days ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>关于W880取景器问题</title>
      <link>http://developer.sonyericsson.com/community/thread/48521</link>
      <description>&lt;!-- [DocumentBodyStart:d2a97a35-97ca-4493-8f58-47f9a3bb77e1] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我用J2ME做手机拍照，但是在W880上取景器里显示的物体总是和实际要拍摄的物体相差90度，也就是要拍的物体是 | ，但是在取景器里看是 -。不知道有什么方法可以解决这个问题吗？我用的是MMAPI和JSR234.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d2a97a35-97ca-4493-8f58-47f9a3bb77e1] --&gt;</description>
      <pubDate>Fri, 27 Feb 2009 10:38:41 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48521</guid>
      <dc:date>2009-02-27T10:38:41Z</dc:date>
      <clearspace:dateToText>8 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>如何用J2ME or JavaME 寫程式係收SMS電話上面</title>
      <link>http://developer.sonyericsson.com/community/thread/48450</link>
      <description>&lt;!-- [DocumentBodyStart:a1153ae1-a32e-4c18-94f3-99e8dd72889b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如何用J2ME or JavaME 寫程式係收SMS電話上面, 因為我寫個application 係有收SMS功能.不過我唔知點樣先可以用我個application收到電話send來sms.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;有無人可以俾d sample code 我...多謝幫手!&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a1153ae1-a32e-4c18-94f3-99e8dd72889b] --&gt;</description>
      <pubDate>Fri, 20 Feb 2009 08:55:02 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48450</guid>
      <dc:date>2009-02-20T08:55:02Z</dc:date>
      <clearspace:dateToText>7 months, 4 days ago</clearspace:dateToText>
      <clearspace:messageCount>8</clearspace:messageCount>
      <clearspace:replyCount>7</clearspace:replyCount>
    </item>
    <item>
      <title>使用Netbeans开发基于CDC的Java ME程序入门</title>
      <link>http://developer.sonyericsson.com/community/thread/46999</link>
      <description>&lt;!-- [DocumentBodyStart:b9ae0d69-6e1b-411a-abe5-09ee2bad6767] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;首先我们需要安装以下软件：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1）J2SDK 1.4.2 or JDK 5.0&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2）Netbeans IDE 5.0&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3）Mobility Pack 5.0 for CDC&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4）UIQ SDK 3.0 beta&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;5）SonyEricsson CDC扩展平台1.0 beta&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;6）SonyEricsson M600 CDC 扩展包&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;7）SonyEricsson P990 CDC 扩展包&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;这些软件在J2ME开发网的下载中心都能找到，请登录&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.j2medev.com/soft/index.asp下载。"&gt;http://www.j2medev.com/soft/index.asp下载。&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;首先安装JDK，其次是Netbeans IDE 5.0，然后是Mobility Pack 5.0 for CDC和相关的扩展软件。然后我们需要把CDC平台集成到Netbeans之中，从菜单选择工具--Java 平台管理器，然后选择Java ME平台CDC模拟器&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b9ae0d69-6e1b-411a-abe5-09ee2bad6767] --&gt;</description>
      <pubDate>Thu, 30 Oct 2008 09:08:49 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46999</guid>
      <dc:date>2008-10-30T09:08:49Z</dc:date>
      <clearspace:dateToText>11 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之sqrt开方函数（查表法）(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43151</link>
      <description>&lt;!-- [DocumentBodyStart:ae89f9ed-cc97-45e9-baef-a04e762494ca] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;以前经常上网扒代码，然后自己调试，修补。找到了很多很多有用的东西，对自己帮助很大。&lt;/p&gt;&lt;p&gt;但是缺乏管理，很多代码都无法找到出处。这里只能向这些作者表示歉意！&lt;/p&gt;&lt;p&gt;就算是在这个地方做一次总结吧。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;sqrt我就不做介绍了。这个方法是在没有Math库的情况下使用的。&lt;/p&gt;&lt;p&gt;它的效率自然要比其它的逼近算法要快很多。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:4c087a22-9682-4101-9a50-a20593fd30fa]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final static int[] sqrtTab = { 0, 16, 22, 27, 32, 35, 39, 42, 45,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 48, 50, 53, 55, 57, 59, 61, 64, 65, 67, 69, 71, 73, 75, 76, 78, 80,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 81, 83, 84, 86, 87, 89, 90, 91, 93, 94, 96, 97, 98, 99, 101, 102,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 103, 104, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 128, 129, 130,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 144, 144, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 155, 155, 156, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 165, 166, 167, 167, 168, 169, 170, 170, 171, 172, 173, 173, 174,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 175, 176, 176, 177, 178, 178, 179, 180, 181, 181, 182, 183, 183,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, 192, 192,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 201, 202, 203, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209, 210, 211, 211, 212, 212, 213, 214, 214, 215, 215, 216, 217,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 217, 218, 218, 219, 219, 220, 221, 221, 222, 222, 223, 224, 224,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 225, 225, 226, 226, 227, 227, 228, 229, 229, 230, 230, 231, 231,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 252, 253, 253, 254, 254, 255 };

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long adjustment(long x, long xn) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long xn2 = xn * xn;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long comparitor0 = xn2 - x;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (comparitor0 &amp;lt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comparitor0 = -comparitor0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long twice_xn = xn &amp;lt;&amp;lt; 1;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long comparitor1 = x - xn2 + twice_xn - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (comparitor1 &amp;lt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comparitor1 = -comparitor1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long comparitor2 = xn2 + twice_xn + 1 - x;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (comparitor0 &amp;gt; comparitor1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (comparitor1 &amp;gt; comparitor2) ? ++xn : --xn;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (comparitor0 &amp;gt; comparitor2) ? ++xn : xn;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; static long sqrt(long x) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long xn;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x10000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x1000000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x10000000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x40000000)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = sqrtTab[(int) (x &amp;gt;&amp;gt; 24)] &amp;lt;&amp;lt; 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = sqrtTab[(int) (x &amp;gt;&amp;gt; 22)] &amp;lt;&amp;lt; 7;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x4000000)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = sqrtTab[(int) (x &amp;gt;&amp;gt; 20)] &amp;lt;&amp;lt; 6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = sqrtTab[(int) (x &amp;gt;&amp;gt; 18)] &amp;lt;&amp;lt; 5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (xn + 1 + (x / xn)) &amp;gt;&amp;gt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (xn + 1 + (x / xn)) &amp;gt;&amp;gt; 1;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return adjustment(x, xn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x100000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x400000)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (long) sqrtTab[(int) (x &amp;gt;&amp;gt; 16)] &amp;lt;&amp;lt; 4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (long) sqrtTab[(int) (x &amp;gt;&amp;gt; 14)] &amp;lt;&amp;lt; 3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x40000)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (long) sqrtTab[(int) (x &amp;gt;&amp;gt; 12)] &amp;lt;&amp;lt; 2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (long) sqrtTab[(int) (x &amp;gt;&amp;gt; 10)] &amp;lt;&amp;lt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (xn + 1 + (x / xn)) &amp;gt;&amp;gt; 1;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return adjustment(x, xn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x100) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x1000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x4000) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = sqrtTab[(int) (x &amp;gt;&amp;gt; 8)] + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (sqrtTab[(int) (x &amp;gt;&amp;gt; 6)] &amp;gt;&amp;gt; 1) + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0x400) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (sqrtTab[(int) (x &amp;gt;&amp;gt; 4)] &amp;gt;&amp;gt; 2) + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xn = (sqrtTab[(int) (x &amp;gt;&amp;gt; 2)] &amp;gt;&amp;gt; 3) + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return adjustment(x, xn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x &amp;gt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return adjustment(x, sqrtTab[(int) x] &amp;gt;&amp;gt; 4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:4c087a22-9682-4101-9a50-a20593fd30fa]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ae89f9ed-cc97-45e9-baef-a04e762494ca] --&gt;</description>
      <pubDate>Fri, 25 Jan 2008 01:19:02 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43151</guid>
      <dc:date>2008-01-25T01:19:02Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>[蓝牙socket问题]PC端的蓝牙socket服务端通讯程序无法接受ＷＭ手机客户端发起的蓝牙连接的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/49771</link>
      <description>&lt;!-- [DocumentBodyStart:eed2fcef-0ffa-4f7b-8a7d-f8f47434582f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;这是运行在ＰＣ上的蓝牙通讯程序。是作为服务器的，主要是与手机进行蓝牙通讯。 &lt;br/&gt;以下是部分代码： &lt;br/&gt;m_lisSocket =  socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); &lt;br/&gt;if (m_lisSocket  ==  INVALID_SOCKET) &lt;br/&gt;{ &lt;br/&gt;return WSAGetLastError (); &lt;br/&gt;} &lt;br/&gt;SOCKADDR_BTH sa;  &lt;br/&gt;memset (&amp;amp;sa, 0, sizeof(sa)); &lt;br/&gt;sa.addressFamily = AF_BTH; &lt;br/&gt;sa.port  = BT_PORT_ANY; &lt;br/&gt;sa.btAddr = lpRadioInfo-&amp;gt;address.ullLong;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if  (bind(m_lisSocket, (SOCKADDR *)&amp;amp;sa, sizeof(sa))) &lt;br/&gt;{ &lt;br/&gt;return  WSAGetLastError(); &lt;br/&gt;} &lt;br/&gt;int iNameLen = sizeof(sa); &lt;br/&gt;if  (getsockname(m_lisSocket, (SOCKADDR *)&amp;amp;sa, &amp;amp;iNameLen)) &lt;br/&gt;{ &lt;br/&gt;return  WSAGetLastError (); &lt;br/&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if (listen (m_lisSocket, SOMAXCONN)) &lt;br/&gt;{  &lt;br/&gt;return WSAGetLastError (); &lt;br/&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一切都正常，但是accept函数那里检测不到客户端的连接。我写了个Windows  Mobile的手机蓝牙客户端作测试，调用connect函数是得到的错误是10061,connect的时候指定的蓝牙地址应该没错呀？可是就是连不上？  &lt;br/&gt;有做过蓝牙通讯程序的朋友能帮忙解决吗？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以下是Windows Mobile蓝牙客户端的部分代码： &lt;br/&gt;GUID  ServerGuid;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if(GetGUID(strGUID, &amp;amp;ServerGuid)) &lt;br/&gt;return -1;  &lt;br/&gt;m_socketClient = socket (AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if  (m_socketClient == INVALID_SOCKET) &lt;br/&gt;{ &lt;br/&gt;return WSAGetLastError(); &lt;br/&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;SOCKADDR_BTH sa;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;memset (&amp;amp;sa, 0, sizeof(sa));  &lt;br/&gt;sa.addressFamily = AF_BT; &lt;br/&gt;sa.serviceClassId=ServerGuid; &lt;br/&gt;sa.btAddr =  0x003091400130;　　//这里干脆直接把ＰＣ的蓝牙设备地址写上去，应该没错吧&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;//if(iSelectedDeviceIndex==-1) &lt;br/&gt;//{ &lt;br/&gt;//  sa.btAddr=m_saClient.btAddr; &lt;br/&gt;//} &lt;br/&gt;//else &lt;br/&gt;//{ &lt;br/&gt;// for (int iCount =  0  ;(m_pCurrentDevice)&amp;amp;&amp;amp;iCount!=iSelectedDeviceIndex;m_pCurrentDevice=m_pCurrentDevice-&amp;gt;NextDevice,iCount++);  &lt;br/&gt;// sa.btAddr = m_pCurrentDevice-&amp;gt;bthAddress; &lt;br/&gt;//}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if (connect  (m_socketClient, (SOCKADDR *)&amp;amp;sa, sizeof(sa)) == SOCKET_ERROR) &lt;br/&gt;{  &lt;br/&gt;m_socketClient=INVALID_SOCKET; &lt;br/&gt;int n =  WSAGetLastError();　　　//此处n=10061,connect不成功 &lt;br/&gt;return WSAGetLastError(); &lt;br/&gt;}&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:eed2fcef-0ffa-4f7b-8a7d-f8f47434582f] --&gt;</description>
      <pubDate>Wed, 23 Sep 2009 02:34:54 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49771</guid>
      <dc:date>2009-09-23T02:34:54Z</dc:date>
      <clearspace:dateToText>2 months, 5 hours ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>发帖必看（索尼爱立信论坛操作需知）</title>
      <link>http://developer.sonyericsson.com/community/thread/49506</link>
      <description>&lt;!-- [DocumentBodyStart:e46ced58-8899-4df5-bcf8-f364e6949f26] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;hi,索尼爱立信开发者论坛与大家常用的网站有一些操作上的不同，还请大家注意。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在索尼爱立信论坛中，如果想要发帖讨论问题，请选择右边“操作”中的“展开讨论”，如下图红框选中的选项&lt;/p&gt;&lt;p&gt;&lt;a href="http://developer.sonyericsson.com/community/servlet/JiveServlet/showImage/2-127644-1586/1.JPG"&gt;&lt;img alt="1.JPG" class="jive-image" src="http://developer.sonyericsson.com/community/servlet/JiveServlet/downloadImage/2-127644-1586/1.JPG"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;而不要选择“创建文档”选项，因为“创建文档”选项会自动归类成wiki,这样它就不算帖子了，大家参与讨论时也会感到十分的不方便。因此还请注意。如果想讨论或问问题，请使用“展开讨论”选项，同时也欢迎大家使用“创建文档”选项把自己的开发心得写出来&lt;img height="16px" src="http://developer.sonyericsson.com/community/images/emoticons/laugh.gif" width="16px"/&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e46ced58-8899-4df5-bcf8-f364e6949f26] --&gt;</description>
      <pubDate>Mon, 24 Aug 2009 15:05:36 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49506</guid>
      <dc:date>2009-08-24T15:05:36Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>6</clearspace:messageCount>
      <clearspace:replyCount>5</clearspace:replyCount>
    </item>
    <item>
      <title>如何利用手机上的GPS做GIS应用</title>
      <link>http://developer.sonyericsson.com/community/thread/49782</link>
      <description>&lt;!-- [DocumentBodyStart:746cb076-ec44-4245-9871-b7a0eba0810c] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;table cellpadding="0" cellspacing="0" class="mtxt"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;我有一个手机，I phone的，上面内装有GPS模块，可以使用相关的地图软件进行GPS定位。 &lt;br/&gt;手机已开发GPRS功能，CMNET传输方式。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问。  &lt;br/&gt;我如何使用软件，可以将GPS所获取到的经纬度信息，以一定频率通过GPRS发送到指定的服务器IP和端口上。使得服务器能够接受到手机所在的位置。使用socket传输。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:746cb076-ec44-4245-9871-b7a0eba0810c] --&gt;</description>
      <pubDate>Wed, 23 Sep 2009 03:10:19 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49782</guid>
      <dc:date>2009-09-23T03:10:19Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>请教setMessageListener的问题 (W880)</title>
      <link>http://developer.sonyericsson.com/community/thread/47872</link>
      <description>&lt;!-- [DocumentBodyStart:8b4f3fb4-7c44-47dd-9343-9a72b3becbdf] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我在短信代码中： &lt;/p&gt;&lt;p&gt; try{//地址 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String address = "sms://+" + phoneNumber; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(address); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(gbcontent); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //建立连接 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmsconn = (MessageConnection)Connector.open(address); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmsconn.setMessageListener(this); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置短信息类型为文本，短信息有文本和二进制两种类型 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextMessage msg = (TextMessage)mmsconn.newMessage(MessageConnection.TEXT_MESSAGE); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置信息内容 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg.setPayloadText(gbcontent); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //发送 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmsconn.send(msg); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */ &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //mmsconn.close(); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){ &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = false; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(e.toString()); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //未处理 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;&lt;p&gt; 在真机上老是出现: &lt;/p&gt;&lt;p&gt; Cannot listen on client connection这样的报错,假如去掉setMessagelistener就不会,有没有人知道原因的? 谢谢.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8b4f3fb4-7c44-47dd-9343-9a72b3becbdf] --&gt;</description>
      <pubDate>Mon, 12 Jan 2009 03:35:44 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47872</guid>
      <dc:date>2009-01-12T03:35:44Z</dc:date>
      <clearspace:dateToText>9 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>如何在java程序中发送收费短信信息并去掉每次的提示？</title>
      <link>http://developer.sonyericsson.com/community/thread/49665</link>
      <description>&lt;!-- [DocumentBodyStart:d1f893e6-6ec1-409b-afc9-eb3986aa0f82] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;想做一个收费的j2me软件，其中要通过短信来进行收费和订阅。请问能否发送？并去掉每次烦人的提示？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d1f893e6-6ec1-409b-afc9-eb3986aa0f82] --&gt;</description>
      <pubDate>Thu, 10 Sep 2009 05:47:30 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49665</guid>
      <dc:date>2009-09-10T05:47:30Z</dc:date>
      <clearspace:dateToText>2 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>请教一下索爱手机(非symbian)截屏的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/47530</link>
      <description>&lt;!-- [DocumentBodyStart:937e9c03-80ae-45e1-a879-0fe5fc7f6b77] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我发现论坛上有一个应用可以截取非智能机的屏幕,而且用的是端口,我想问一下怎么实现的,是否用的是AT指令? 谢谢.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:937e9c03-80ae-45e1-a879-0fe5fc7f6b77] --&gt;</description>
      <pubDate>Wed, 17 Dec 2008 09:17:32 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47530</guid>
      <dc:date>2008-12-17T09:17:32Z</dc:date>
      <clearspace:dateToText>11 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>problem with access to sim</title>
      <link>http://developer.sonyericsson.com/community/thread/48630</link>
      <description>&lt;!-- [DocumentBodyStart:3c56a1a7-2f25-4e13-9b28-24eb6f434690] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;hello all, I'm tring to develop a javaME application using SATSA_APDU API to acess sim application toolkit.When running it on the emulator ,it works well,but when downloading jar to the real w595c ,it throws a security exception. I know it's because jar needs a operator domain signature. The problem is I hava got no such a certificate,the appliction is only for develop use,just for fun .Could anyboby give me a solution?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;thanks a lot!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3c56a1a7-2f25-4e13-9b28-24eb6f434690] --&gt;</description>
      <pubDate>Wed, 11 Mar 2009 02:52:45 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48630</guid>
      <dc:date>2009-03-11T02:52:45Z</dc:date>
      <clearspace:dateToText>8 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>[转贴]索爱手机同步功能的使用</title>
      <link>http://developer.sonyericsson.com/community/thread/46224</link>
      <description>&lt;!-- [DocumentBodyStart:38fbf81b-6c82-4d1b-b4ef-eebe0d13f330] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这个帖子是我从别的论坛转过来的，觉得写得很好，分享一下&lt;/p&gt;&lt;p&gt;看到有很多的朋友因为丢了通讯录 丢失了 朋友联系信息 而带来了不少麻烦 我们何不可以未雨绸缪 提前备份通讯录 呢～&lt;/p&gt;&lt;p&gt;其实备份通讯录 很简单 方法也很多 可以备份到本地 网络 等等 软件也不少 &lt;/p&gt;&lt;p&gt;今天教大家一种不常用的方法 （可能有的人在用 希望不要笑我火星 写给新手看看也不错啊）就是用同步的一个功能&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;syncML同步&lt;/p&gt;&lt;p&gt;也许有的人还没有听说过这个功能 下面我们详细了解下&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;SyncML是一种唯一行业通用的移动数据同步化协议，将由SyncML行动（SyncMLinitiative）发行，是一种开放性协议。SyncML initiative由行&lt;/p&gt;&lt;p&gt;业先锋Ericsson, IBM, Lotus,Motorola, Nokia, Palm Inc., Psion, StarfishSoftware初创，Matsushita也与最近加入，使其会员达到9家。&lt;/p&gt;&lt;p&gt;另外还有555家支持公司。SyncMLinitiative的目的就在于，与终端用户、设备开发商、数据提供商、基础构件开发商、应用软件开发商及服务&lt;/p&gt;&lt;p&gt;提供商协同工作，发行SyncML，以真正实现：使用任何终端设备均可随时随地访问任何网络数据。&lt;/p&gt;&lt;p&gt;直到目前，移动数据同步化还是建立在一些互不相同的私有协议上，其中的每种协议只能支持有限种类的设备、系统及数据类型。这些不兼容&lt;/p&gt;&lt;p&gt;的协议技术，增加了各方面（用户、生产商、服务提供商、开发商）工作的复杂度。而且这类协议的增加会限制移动设备的使用，会限制数据&lt;/p&gt;&lt;p&gt;的访问和发行，还会限制用户的移动性。但SyncML发行后，情况即将改变。&lt;/p&gt;&lt;p&gt;SyncML可以表示通过任意网络同步化所有设备及应用软件。借助XML，SyncML将成为真正的同步化平台（这一点将会得到证实）。&lt;/p&gt;&lt;p&gt;SyncML的主要目的有两方面：一、可以通过任何移动设备将网络数据同步化。二、移动设备中的数据也可以用任何网络数据同步化。&lt;/p&gt;&lt;p&gt;有了SyncML，网络数据可以通过多种设备同步化，用户可以使用不同的设备（包括掌上电脑、移动电话、汽车计算机、台式机）访问和操作同&lt;/p&gt;&lt;p&gt;一网络数据。此外，用户的个人信息（如电子邮件、通讯录等）能够在用户的不同设备上同时得到更新，保持一致。例如，用户在掌上电脑上&lt;/p&gt;&lt;p&gt;阅读了一封新收到的邮件，那么在他的台式机中，也会自动地将这封邮件显示为已读邮件。&lt;/p&gt;&lt;p&gt;有了SyncML，用户就可以在他的移动设备上更多地使用应用软件和信息，如果对这些软件和信息有所更新，可以随时将这些更新同步化给办公&lt;/p&gt;&lt;p&gt;室设备或同步化到网络上；另外，例如，当移动设备用户通过电子邮件收到定单时，就可以立即使用同一移动设备访问公司的存货系统，以确&lt;/p&gt;&lt;p&gt;定发货日期。无疑这将更加促进移动设备的流行与普及。&lt;/p&gt;&lt;p&gt;要实现上述目的，SyncML协议应具备这样几种特征：一、对无线和有线网络均有效；二、支持任意网络数据；三、支持多种传输协议；四、能&lt;/p&gt;&lt;p&gt;够从多种应用软件入手访问数据；五、解决移动设备资源有限问题；六、建立在现有的Internet和网络技术基础之上；七、协议最基本也要做&lt;/p&gt;&lt;p&gt;到，使得所有设备能够达到最普通的同步化要求。&lt;/p&gt;&lt;p&gt;为了SyncML能够被采用，SyncML行动组织将发行：&lt;/p&gt;&lt;p&gt;一个结构性规范；&lt;/p&gt;&lt;p&gt;两种协议指标（SyncML陈述协议及SyncML同步化协议）；&lt;/p&gt;&lt;p&gt;通用传输协议的捆绑物；&lt;/p&gt;&lt;p&gt;通用编程语言界面；&lt;/p&gt;&lt;p&gt;协议的开放性实现样本。&lt;/p&gt;&lt;p&gt;通面上面一段我们大体了解了 SyncML功能 那么下面 我们就利用这个功能来为我们提供方便&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;目前提供SyncML 服务的网站很多，移动梦网号码薄管家，MyTT，搜狐手机保险箱，无忧通讯录，都提供SyncML 服务。目前除移动梦网号码薄&lt;/p&gt;&lt;p&gt;管家收费5元包月，其他网站免费。&lt;/p&gt;&lt;p&gt;注册方法很简单，各网站都能免费注册。注册完成后，需要跟据各服务商提供的数据修改。&lt;/p&gt;&lt;p&gt;&lt;span&gt;我们选择[url]&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://redirect.alexa.com/redirect"&gt;http://redirect.alexa.com/redirect&lt;/a&gt;&lt;span&gt;?[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.hotpim.com/"&gt;http://www.hotpim.com/&lt;/a&gt;&lt;span&gt;][/url](好拼网)这个网站作为测试对象&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这个网站提供很多的功能也很实用哦 ～～（广大朋友们可以动员起来 找点这种类型的网站 和大家分享啊 ）&lt;/p&gt;&lt;p&gt;首先 在这个网站上申请一个帐号 这个大家应该都会 不多说了 哈哈&lt;/p&gt;&lt;p&gt;然后 也是最重要的 就是设置手机的同步配置（这个网站上有各个机型相对应的设置方式，在首页有一个支持机型，点开就是了或是手机同步里面，也有支持机型）&lt;/p&gt;&lt;p&gt;1.进入主菜单&lt;/p&gt;&lt;p&gt;2.选择"工具"项并进入&lt;/p&gt;&lt;p&gt;3.再选择"数据同步"项并进入 &lt;/p&gt;&lt;p&gt;4.再选择"新条目"项并进入：&lt;/p&gt;&lt;p&gt;a.在设置项中按如下依次输入，最后保存退出： &lt;/p&gt;&lt;p&gt;b.名称：输入您的同步条目的名称，如：hotpim &lt;/p&gt;&lt;p&gt;&lt;span&gt;c.URL：[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.hotpim.com:8010/"&gt;http://www.hotpim.com:8010/&lt;/a&gt;&lt;span&gt;]（有的手机是 主机地址：[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.hotpim.com/"&gt;http://www.hotpim.com/&lt;/a&gt;&lt;span&gt;]（小写半角英文字母） 端口：8010）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;d.用户名：您的用户名（字母大小写敏感） &lt;/p&gt;&lt;p&gt;e.密码：您的密码（字母大小写敏感） &lt;/p&gt;&lt;p&gt;f.数据路径：选择通信录，并在电话本路径中输入./contact(字母大小写敏感）&lt;/p&gt;&lt;p&gt;g.保存、返回上级菜单&lt;/p&gt;&lt;p&gt;（以上是3D 48P v2的设置 其他的版本可能会稍有差别 请自行辨别）&lt;/p&gt;&lt;p&gt;使用方法&lt;/p&gt;&lt;p&gt;1.进入主菜单&lt;/p&gt;&lt;p&gt;2.选择"工具"项并进入&lt;/p&gt;&lt;p&gt;3.再选择"数据同步"项并进入&lt;/p&gt;&lt;p&gt;4.选择刚才保存的同步条目的名称（如：hotpim），按下确认键即可启动同步。&lt;/p&gt;&lt;p&gt;5.同步进行中......，等待同步结束。&lt;/p&gt;&lt;p&gt;6.完成功后，都会有相应的提示。&lt;/p&gt;&lt;p&gt;7.ok&lt;/p&gt;&lt;p&gt;（注：此方法要费一定的流量）&lt;/p&gt;&lt;p&gt;同步完了 然后登录网站你会发现 你的通讯录都整齐的摆在那里了 &lt;/p&gt;&lt;p&gt;是不是很简单呢 &lt;/p&gt;&lt;p&gt;其实这个SyncML还有很多实用功能 有兴趣的网友不妨研究研究 不过不要忘记和大家分享哦&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以下索爱的机型都可以按照上述方法尝试一下：&lt;/p&gt;&lt;p&gt;索爱手机（72款）&lt;/p&gt;&lt;p&gt;J300c&amp;nbsp; &lt;/p&gt;&lt;p&gt;K300c&amp;nbsp; K310c&amp;nbsp; K320i&amp;nbsp; K506c&amp;nbsp; K508c&amp;nbsp; K510c&amp;nbsp; K530c&amp;nbsp; K550c&amp;nbsp; K600c&amp;nbsp; K608&amp;nbsp; K610c&amp;nbsp; K618&amp;nbsp; K620c&amp;nbsp; K630c&amp;nbsp; K630i&amp;nbsp; K660i&amp;nbsp; k700c&amp;nbsp; K750c&amp;nbsp;&amp;nbsp; K770&amp;nbsp; K780c&amp;nbsp;&amp;nbsp; K790c&amp;nbsp;&amp;nbsp; k800c&amp;nbsp; k818c&amp;nbsp; k858c&amp;nbsp; &lt;/p&gt;&lt;p&gt;S500c&amp;nbsp; S600&amp;nbsp; S700c&amp;nbsp; S700i&amp;nbsp; &lt;/p&gt;&lt;p&gt;T258c&amp;nbsp; T628&amp;nbsp; T658c&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Z258c&amp;nbsp; Z310c&amp;nbsp; Z320c&amp;nbsp; Z350c&amp;nbsp; Z520c&amp;nbsp; Z530c&amp;nbsp; Z550c&amp;nbsp; Z558c&amp;nbsp; Z610&amp;nbsp; Z710c&amp;nbsp;&amp;nbsp; Z750&amp;nbsp; &lt;/p&gt;&lt;p&gt;W31s&amp;nbsp;&amp;nbsp; W200c&amp;nbsp; W300c&amp;nbsp; W380c&amp;nbsp; W550c&amp;nbsp; W580c&amp;nbsp; W600c&amp;nbsp; W610c&amp;nbsp; W660i&amp;nbsp; W700c&amp;nbsp; W710c&amp;nbsp; W810c&amp;nbsp; W830c&amp;nbsp; W850c&amp;nbsp; W880c&amp;nbsp; W888c&amp;nbsp; W890c&amp;nbsp; W900c&amp;nbsp; W950c&amp;nbsp; W958c&amp;nbsp; W960&amp;nbsp;&amp;nbsp; W999i&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;V600&amp;nbsp;&amp;nbsp; V630i&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;M608c&amp;nbsp; &lt;/p&gt;&lt;p&gt;P1c&amp;nbsp; p5i&amp;nbsp; p700&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Shinobu&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:38fbf81b-6c82-4d1b-b4ef-eebe0d13f330] --&gt;</description>
      <pubDate>Tue, 09 Sep 2008 10:39:49 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46224</guid>
      <dc:date>2008-09-09T10:39:49Z</dc:date>
      <clearspace:dateToText>1 year, 1 month ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>如何J2ME获取手机网络信号强度值，GPS信号强度值</title>
      <link>http://developer.sonyericsson.com/community/thread/48320</link>
      <description>&lt;!-- [DocumentBodyStart:e40a3bca-c4f6-4767-bf0f-16021f078fa8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;请高手指点，如何在J2ME，用某种方法获取手机网络信号强度值，GPS信号强度值，多谢。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e40a3bca-c4f6-4767-bf0f-16021f078fa8] --&gt;</description>
      <pubDate>Thu, 12 Feb 2009 02:47:03 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48320</guid>
      <dc:date>2009-02-12T02:47:03Z</dc:date>
      <clearspace:dateToText>9 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>请教各位一些关于开发的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/42479</link>
      <description>&lt;!-- [DocumentBodyStart:4d97c17d-110f-44e1-89af-6e68bfd4a123] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;各位论坛的朋友大家,我是一名java程序员.现在想自己试着开发一些索爱手机的软件.(本人很喜欢索爱的机子).但不太了解开发手机软件需要那些配置.请问eclipse如何开发手机软件.还有就是不知道在哪里能下到索爱的模拟器.(我用的是W710C一直没找到模拟器).希望各位帮帮忙!&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4d97c17d-110f-44e1-89af-6e68bfd4a123] --&gt;</description>
      <pubDate>Mon, 10 Dec 2007 17:11:59 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42479</guid>
      <dc:date>2007-12-10T17:11:59Z</dc:date>
      <clearspace:dateToText>1 year, 11 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>如何处理游戏中的速度问题？</title>
      <link>http://developer.sonyericsson.com/community/thread/49113</link>
      <description>&lt;!-- [DocumentBodyStart:90f86686-3545-44b4-8da4-6cd03c5c611b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;游戏的过程是这样的：最开始的时候物体以每50毫秒一个像素在移动（向上或者向下或者其他，只是一个方向），然后分数积累到一定程度游戏升级，因此速度也就提升。就便成每50毫秒移动2个像素。 &lt;br/&gt;问题来了：如果以这种方式递增的话，升3.4级的时候物体的移动就显得太快了，跟下雨一样。呵呵。 &lt;br/&gt;&lt;br/&gt;做了一个游戏，类似于 是男人就下100层。速度的提升就是按照上面说的来，等级升到3.4级的时候游戏就没办法玩了，其实就是没啥乐趣了。 &lt;br/&gt;可是玩过人家单击版的，感觉那些物体移动在不知不觉中就加快了。 &lt;br/&gt;&lt;br/&gt;有什么样的办法能解决这样的问题啊 ？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:90f86686-3545-44b4-8da4-6cd03c5c611b] --&gt;</description>
      <pubDate>Wed, 27 May 2009 09:05:05 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49113</guid>
      <dc:date>2009-05-27T09:05:05Z</dc:date>
      <clearspace:dateToText>5 months, 6 days ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>急！！！capuchin计划的键盘输入怎么做？</title>
      <link>http://developer.sonyericsson.com/community/thread/49210</link>
      <description>&lt;!-- [DocumentBodyStart:ee634f73-50f6-4bfa-99e8-2b0115ea04f8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;      小弟在这里请教一下  capuchin计划的项目 键盘输入这一块怎么做？一但 dis.setCurrent(flashCanvas);后  手机就不接受按键了 希望有人能指教一下 谢谢&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ee634f73-50f6-4bfa-99e8-2b0115ea04f8] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">capuchin</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">键盘</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">输入</category>
      <pubDate>Mon, 15 Jun 2009 06:40:58 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49210</guid>
      <dc:date>2009-06-15T06:40:58Z</dc:date>
      <clearspace:dateToText>5 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>如何安装里面游戏和其他应用程序(需要详细答案)</title>
      <link>http://developer.sonyericsson.com/community/thread/43308</link>
      <description>&lt;!-- [DocumentBodyStart:6224fc1e-05c9-4b84-9f37-45d8e6bc5324] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我的K750C里只有两个游戏我该不知如何安装游戏呢..还有我的好多朋友把词典和其他应用工具都安装了..这手机也可以安装吗?..那位高手能帮忙啊..&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6224fc1e-05c9-4b84-9f37-45d8e6bc5324] --&gt;</description>
      <pubDate>Mon, 04 Feb 2008 08:31:41 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43308</guid>
      <dc:date>2008-02-04T08:31:41Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>请教W958C堆内存大小的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/47491</link>
      <description>&lt;!-- [DocumentBodyStart:37247050-7f79-477f-8b55-804ce5178fab] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;请问谁知道w958手机的堆内存大小是多少吗？我的程序在w958上运行大概10分钟左右就会报出out of memory的错误，程序死机，是个联网应用，而且报错误的时候并没有进行图片创建等需要大量内存的工作，非常奇怪。同样的程序在e2，s700等手机上跑都没有这样的问题，照理说w958不应该比那些机型性能差的，谁能帮我分析一下原因，谢谢啦&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:37247050-7f79-477f-8b55-804ce5178fab] --&gt;</description>
      <pubDate>Mon, 15 Dec 2008 01:08:58 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47491</guid>
      <dc:date>2008-12-15T01:08:58Z</dc:date>
      <clearspace:dateToText>9 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>想问下，J2ME程序如何能接收到普通SMS短信？（非特定端口SMS短信）</title>
      <link>http://developer.sonyericsson.com/community/thread/48948</link>
      <description>&lt;!-- [DocumentBodyStart:c206c0c1-5cfb-4afd-b1a2-daa74d1abab2] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;RT，这个问题困扰我好多天了，我的机器是W810C，不知道有没有某哦中方法收到普通短信？&lt;/p&gt;&lt;p&gt;感谢各位！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c206c0c1-5cfb-4afd-b1a2-daa74d1abab2] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">sms_j2me</category>
      <pubDate>Wed, 22 Apr 2009 01:11:47 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48948</guid>
      <dc:date>2009-04-22T01:11:47Z</dc:date>
      <clearspace:dateToText>7 months, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>继续问SE_SDK_2.5.0的安装问题</title>
      <link>http://developer.sonyericsson.com/community/thread/43164</link>
      <description>&lt;!-- [DocumentBodyStart:3d10eafb-e0d4-480c-9322-1639b4909a87] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;安装SE_SDK_2.5.0的过程中，会弹出一个安装SPOT xde Player的窗口，请问这个程序是做什么用的？是必须安装的吗？&lt;/p&gt;&lt;p&gt;另外，我选择安装的目录是D盘，但是安装完成后，在我E盘的根目录下生成了4个DLL文件，他们分别是&lt;/p&gt;&lt;p&gt;mfc70.dll&lt;/p&gt;&lt;p&gt;mfc70u.dll&lt;/p&gt;&lt;p&gt;msvcp70.dll&lt;/p&gt;&lt;p&gt;msvcr70.dll&lt;/p&gt;&lt;p&gt;这几个是临时文件吗？可以删除吗？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3d10eafb-e0d4-480c-9322-1639b4909a87] --&gt;</description>
      <pubDate>Fri, 25 Jan 2008 15:48:51 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43164</guid>
      <dc:date>2008-01-25T15:48:51Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>请问有没有索爱PC套间的类似代码？</title>
      <link>http://developer.sonyericsson.com/community/thread/47497</link>
      <description>&lt;!-- [DocumentBodyStart:ab8c2b9a-f8ad-4a67-8b9a-06d0c67e5661] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;NOKIA上有NOKIA PC 套间代码PC_Connectivity_API_3.2，请问一下索爱有没有类似的代码？ 我想实现通过编码将程序发送到手机上，谢谢了。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ab8c2b9a-f8ad-4a67-8b9a-06d0c67e5661] --&gt;</description>
      <pubDate>Tue, 16 Dec 2008 06:08:19 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47497</guid>
      <dc:date>2008-12-16T06:08:19Z</dc:date>
      <clearspace:dateToText>11 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>mtk模拟器下怎么添加音乐文件</title>
      <link>http://developer.sonyericsson.com/community/thread/49724</link>
      <description>&lt;!-- [DocumentBodyStart:03f10fef-df74-4f4a-8a7c-bab8b224ecea] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;各位，我想问下，mtk模拟器下怎么添加音乐文件啊。我最近在做MTK平台下音乐播放器的开发，但是模拟器下没有音乐文件，没办法在模拟器下做单步调试，只能每次都要下载到手机上通过打开存储卡里面的MP3文件进行播放才能查看运行结果，实在是非常麻烦。现在我想问问是不是有什么工具可以把MP3文件，通过资源编译，加入到模拟器下面，在模拟器下打开MP3文件进行播放，这样就可以单步调试查看代码了。各位请帮帮我，万分火急，先谢谢啦。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:03f10fef-df74-4f4a-8a7c-bab8b224ecea] --&gt;</description>
      <pubDate>Fri, 18 Sep 2009 08:19:48 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49724</guid>
      <dc:date>2009-09-18T08:19:48Z</dc:date>
      <clearspace:dateToText>2 months, 2 days ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>急急急！！！wap页面 用什么标签将JSP中textArea内容存入数据库在wap页面显示时是同样的格式</title>
      <link>http://developer.sonyericsson.com/community/thread/49748</link>
      <description>&lt;!-- [DocumentBodyStart:d68c2fa2-0c90-4162-8edf-ac9881ab99b8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我在jsp页面的TextArea文本域中输入内容 &lt;br/&gt;比如 &lt;br/&gt;1、测试 &lt;br/&gt;2、测试 &lt;br/&gt;3、测试 &lt;br/&gt;存入数据库中之后，  我在wap页面上面 wap页面用的是wml标签 用什么标签可以让我在TextArea文本域中输入的格式是一样的。  在web页面中通过 &amp;lt;pre&amp;gt;  &amp;lt;/pre&amp;gt;标签可以使格式是一样的。。但是在wap页面中是什么标签我就不知道了。哪位大虾告诉我一下。。急急急！！！&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;没有什么分了。。不好意思了！！ 真的很急呀。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d68c2fa2-0c90-4162-8edf-ac9881ab99b8] --&gt;</description>
      <pubDate>Tue, 22 Sep 2009 05:34:50 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49748</guid>
      <dc:date>2009-09-22T05:34:50Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>请问一下 电脑上怎么样不用PC SUITE,直接发送JAR文件给手机,并自动安装?</title>
      <link>http://developer.sonyericsson.com/community/thread/47492</link>
      <description>&lt;!-- [DocumentBodyStart:70ed50b7-2ed7-418e-8d61-cf64ec64f1ec] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;就是能否在PC上直接编程对手机进行写文件操作,并安装运行? 哪位能回答一下? 谢谢.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:70ed50b7-2ed7-418e-8d61-cf64ec64f1ec] --&gt;</description>
      <pubDate>Mon, 15 Dec 2008 08:15:07 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47492</guid>
      <dc:date>2008-12-15T08:15:07Z</dc:date>
      <clearspace:dateToText>11 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>我用W910i来配置真机调试，怎么也配置不了</title>
      <link>http://developer.sonyericsson.com/community/thread/46411</link>
      <description>&lt;!-- [DocumentBodyStart:1eaa74c2-50ac-4e6a-bdbb-014286d32a27] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;按照文档介绍，进入服务，进入java开发者模式，然后进入USB，设置网络，然后插入电脑，打开Connection Proxy 的setting的时候，发现并没有Sony Ericsson&amp;nbsp; Device xxx&amp;nbsp; usb Enternet Emulation的选项。所以无法链接w910i手机。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;不知为什么，大家帮帮我，我按照[&lt;/span&gt;&lt;a class="jive-link-external-small" href="https://developer.sonyericsson.com/community/docs/DOC-1734|d-1734"&gt;https://developer.sonyericsson.com/community/docs/DOC-1734|d-1734&lt;/a&gt;&lt;span&gt;]来配置的。&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1eaa74c2-50ac-4e6a-bdbb-014286d32a27] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">w9108</category>
      <pubDate>Mon, 22 Sep 2008 08:59:06 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46411</guid>
      <dc:date>2008-09-22T08:59:06Z</dc:date>
      <clearspace:dateToText>7 months, 3 days ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>模拟器看圆角矩形位置偏掉了</title>
      <link>http://developer.sonyericsson.com/community/thread/47321</link>
      <description>&lt;!-- [DocumentBodyStart:1927d945-1ef1-4a3a-b09c-8f717bef90d8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我用JP8_240×320的模拟器跑程序，发现模拟器对圆角矩形的绘制有偏差，正角矩形倒是没有问题，不知道是索爱模拟器的参数错了，还是他们的计算方法错了&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1927d945-1ef1-4a3a-b09c-8f717bef90d8] --&gt;</description>
      <pubDate>Fri, 05 Dec 2008 06:10:48 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47321</guid>
      <dc:date>2008-12-05T06:10:48Z</dc:date>
      <clearspace:dateToText>11 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之对象序列化(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43110</link>
      <description>&lt;!-- [DocumentBodyStart:99d90918-a4e2-4eb8-9c91-963ddd85cb98] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;最近常被问到对象存储的一些问题。所以决定整理一下着方面经验。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;把Java对象转换为字节序列的过程称为对象的序列化。&lt;/p&gt;&lt;p&gt;把字节序列恢复为Java对象的过程称为对象的反序列化。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;对象的序列化主要有两种用途：&lt;/p&gt;&lt;p&gt;（1） 把对象的字节序列永久地保存到硬盘上，通常存放在一个文件中；&lt;/p&gt;&lt;p&gt;（2） 在网络上传送对象的字节序列。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以上简单介绍了序列化的定义，它主要作用就是将对象转换为可存储的字节，这样我们就能方便的存储并还原对象。&lt;/p&gt;&lt;p&gt;例如，游戏中复杂场景的还原，游戏的实时保存，工具软件中的“返回上一步”功能，或者，仅仅是用来存储软件状态等等。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;其实，序列化是很常用的一个技术，只是J2ME中为求精简，取消了关于序列化的一些内容。所以我们只能自己来实现它。&lt;/p&gt;&lt;p&gt;当然，它也是相当简单的，只是很多朋友在理解上存在一些障碍。下面是示范代码：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:925857da-1cad-4142-81e8-d191a61d2d4d]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class SerializeMIDlet extends MIDlet implements CommandListener {

&amp;nbsp;&amp;nbsp;&amp;nbsp; SerializeTest test1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SerializeTest test2;

&amp;nbsp;&amp;nbsp;&amp;nbsp; Form formTest;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Command cmdExit;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public SerializeMIDlet() {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest = new Form("SerializeTest");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdExit = new Command("Exit", Command.EXIT, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.addCommand(cmdExit);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.setCommandListener(this);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(this).setCurrent(formTest);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test1 = new SerializeTest(1, 1000, "SerializeTest", true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test2 = new SerializeTest();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] data = test1.serialize();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test2.deserialize(data);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test1.member1 = " + Integer.toString(test1.member1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test1.old member2 = " + Long.toString(test1.member2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test1.member3 = " + test1.member3 + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test1.member4 = " + test1.member4 + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append(" ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test2.member1 = " + Integer.toString(test2.member1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test2.old member2 = " + Long.toString(test2.member2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test2.member3 = " + test2.member3 + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; formTest.append("test2.member4 = " + test2.member4 + " ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (d.equals(formTest)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.equals(cmdExit)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyDestroyed();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void destroyApp(boolean arg0) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void pauseApp() {

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void startApp() {

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public interface Serializable {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public byte[] serialize();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void deserialize(byte[] data);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public class SerializeTest implements Serializable {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int member1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long member2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String member3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean member4;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SerializeTest() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public SerializeTest(int m1, long m2, String m3, boolean m4) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member1 = m1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member2 = m2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member3 = m3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member4 = m4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public byte[] serialize() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] ret = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByteArrayOutputStream baos = new ByteArrayOutputStream();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataOutputStream dos = new DataOutputStream(baos);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.writeInt(member1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.writeLong(member2);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.writeUTF(member3);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.writeBoolean(member4);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = baos.toByteArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; baos.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void deserialize(byte[] data) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ByteArrayInputStream bais = new ByteArrayInputStream(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataInputStream dis = new DataInputStream(bais);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member1 = dis.readInt();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member2 = dis.readLong();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member3 = dis.readUTF();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; member4 = dis.readBoolean();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dis.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bais.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:925857da-1cad-4142-81e8-d191a61d2d4d]--&gt;&lt;p&gt;代码中包含了一个Serializable接口，只要继承它并且实现&lt;/p&gt;&lt;p&gt;&amp;nbsp; public byte[] serialize();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; public void deserialize(byte[] data);&lt;/p&gt;&lt;p&gt;函数，就能够使用序列化的功能了。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;很明显，这个接口显得有些多此一举。真正使用的时候，大家可以灵活的使用，不要受这个示范代码的限制。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;还有一点让人觉得遗憾的地方，就是J2ME不能支持反射等功能，所以J2ME中的序列化也整不出什么新花样出来。顶多是把byte数组换成流来表达，这样用在网络交互上更合适。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:99d90918-a4e2-4eb8-9c91-963ddd85cb98] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:58:46 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43110</guid>
      <dc:date>2008-01-23T06:58:46Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>我知道索爱手机的java性能都还不错，那索爱手机java性能最好的前几位的是那几款呢？w710？z710？k550？w610？</title>
      <link>http://developer.sonyericsson.com/community/thread/47402</link>
      <description>&lt;!-- [DocumentBodyStart:07afe255-7890-434b-bb73-97c6bf3914e7] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;hehe 谢谢啦啊&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:07afe255-7890-434b-bb73-97c6bf3914e7] --&gt;</description>
      <pubDate>Wed, 10 Dec 2008 07:29:22 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47402</guid>
      <dc:date>2008-12-10T07:29:22Z</dc:date>
      <clearspace:dateToText>11 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>MIDP 2.0安全机制 与 MIDlet 数字签名 (中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43129</link>
      <description>&lt;!-- [DocumentBodyStart:c13c4cbc-eda0-4aff-85e5-3d89530f01cc] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;刚刚看到一篇关于Midlet的签名的文章，不敢独享，转贴过来给大家参看。&lt;/p&gt;&lt;p&gt;-&lt;/p&gt;&lt;hr originalText="---------------------------------------------"/&gt;&lt;p&gt;本文档是 WoTrust 根据 Forum Nokia 提供的技术文档《MIDP 2.0: Tutorial On Signed MIDlets》翻译整理的，请同时参考此英文原文文档。请用户在编写 MIDlet 和签名 MIdlet 之前阅读此文档，以便对 MIDP2.0 的安全机制有一个深刻的理解，有助于用户能用好 MIDlet 代码签名证书。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一、概述 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP2.0 采用了全新的安全机制，这对于需要调用一个敏感的(重要的)函数和 API 的 MIDlet 开发者来讲是必须了解的，如：网络连接 API 、消息 API 和推 (Push) 函数等，还有一些可选的 MIDP 包也有许多受限制的 API 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;虽然购买代码签名证书需要费 用，但签名 MIDlet 对开发者来讲是收益非浅的，因为许多受保护的 API 都是需要签名的，以保护开发者和用户的利益。当然，有些应用是不需要签名的，如有些不需要联网的仅用到一些图形 API 的小游戏软件。但一些重要的应用，如：连接网络、发送短消息 ( 短信和彩信 ) 或访问移动终端 ( 智能手机、 PDA 等，以下简称为手机 ) 上的 PIM( 个人信息管理 ) 数据等等都需要签名。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;数字签名 MIDlet 的好处包括： &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(1) 基于 MIDlet 的安全策略，某些功能是必须签名才能使用的，而有些功能虽然不签名也可以使用，但必须要求用户在使用时确认和修改其安全策略，如：写用户数据缺省是不允许没有签名的 MIDlet 操作的； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(2) 基于手机的系统安全和移动网络的安全考虑，某些手机制造商、移动运营商等可能拒绝没有签名的 MIDlet 在手机上安装和运行； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(3) 大大改善用户体验，让用户使用方便，使得用户不会遭遇调用受保护 API 时的安全警告的烦恼； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(4) 出于安全考虑，安装没有签名的 MIDlet 是会有安全警告的，而相反，安装已经签名的 MIDlet 则不会出现烦人的警告，手机会自动验证签名而顺利地安装成功； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(5) 已经签名的 MIDlet 将使得用户能改善其低安全策略设置，提高手机的安全性； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(6) 确保已经签名的 MIDlet 不会被非法篡改和非法盗用。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;二、 MIDP 2.0 安全机制 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP 是一个开放的平台，使得任何人都可以为支持 MIDP 的设备开发各种应用软件，一般都是移动终端设备。 MIDlet 套件可以以匿名方式通过网络下载，非常方便，但这也会带来许多安全问题和隐私信息保护问题，用户会问： MIDlet 能把用户的个人信息发给不知道的服务器吗？会自动产生没有授权的呼叫或短消息而给用户带来费用吗？恶意软件会破坏手机？等等。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;除了 Java 语言的安全特性外， MIDP 还增加了许多安全考虑。 MIDP 2.0 比 MIDP 1.0 增强了安全策略，把 API 分为普通 API 和敏感 API ，如：通过 HTTP 协议访问移动网络，由于会给用户产生费用， 所以被列为 敏感 API 。 MIDlet 2.0 推出了可信任 MIDlet(trusted) 和不可信任 MIDlet(untrusted) 的概念，一个不可信任 MIDlet 只能访问有限的 API ，同时还需要用户手动确认并修改其安全策略；而可信任 MIDlet 则自动继承系统中的安全策略而获得访问许可。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;许可 (Permissions) 用于需要身份认证的 敏感 API 。 MIDP 2.0 要求调用 敏感 API 之前必须获得必要的许可，这些许可包的命名同 J2SE 许可，如： HTTP 连接许可同样称为： javax.microedition.io.Connector.http 。 有关许可的文档同意归类在受保护 API 中。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.1 Protection Domains( 保护域 ) &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;保护域是 MIDP 2.0 中一个非常重要的安全概念，一个保护域就是一个许可集和一种交互模式，这些许可既可以是自己继承的，也可能是用户设置的，前者称为允许 (allowed) ，而后者称为用户允许 (user permission) 。当一个 MIDlet 被安装后，它被分配到一个指定的保护域而获得它的许可和交互模式。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;而用户允许则需要用户自己决定是否同意，用户既拒绝一个许可，也可以同意。用户允许有 3 种交互模式： blanket( 普遍适用 ) 、 session( 短期适用 ) 和 oneshot( 本次适用 ) ， 普遍适用 模式就是 MIDlet 安装时获得的许可一直有效，除非用户取消这些许可；而 短期适用 模式则是指第一次调用 API 时需要用户允许，有效期到此 MIDlet 套件运行结束；而 本次适用 模式则在每次调用 API 时都要求用户允许。保护域为用户许可定义了缺省的交互模式。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一个 MIDlet 套件使用 MIDlet-Permissions 和 MIDlet-Permissions-Opt 属性来明确地定义其许可，可以是在 JAD 文件中定义，也可以在 manifest 文件中定义。其中： MIDlet-Permissions 定义了 MIDlet 套件中必须具有的许可，而 MIDlet-Permissions-Opt 则定义希望具有的许可。如：一个应用软件的基本要求是要有 http 连接才能正常工作，同时，也可以使用 https 连接 ( 服务器部署了 SSL 证书 ) 来增强安全性，但不是必须的，这样，这个应用软件的应用描述可以是这样： &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDlet-Permissions: javax.microedition.io.Connector.http &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDlet-Permissions-Opt: javax.microedition.io.Connector.https &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请注意：一个 MIDlet 所要求的许可必须是安装时分配的保护域所具有的许可的子集。如： Nokia S60 MIDP Emulator Prototype 2.0 (SDK) 有一个叫做“ minimum ”的域，此域没有任何许可。所以，如果一个含有许多许可的已经签名的 MIDlet 如果被安装到此域，则会安装失败，因为此域不支持这些许可。同样，如果一个许可的名称有拼写错误，则一样会导致安装失败，因为域中没有此拼写错误的许可。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP 2.0 为 GSM/UTMS 设备定义了 4 种保护域： manufacturer( 设备制造商 ) , operator( 移动运营商 ) , trusted third party( 可信任的第三方 ) , and untrusted( 不受信任域 ) ， 除了 untrusted 域外，每个保护域都对应一组根证书，用于签名 MIDlet 的签名证书的根证书必须包含在这些根证书中，使用不同的签名证书签名的 MIDlet 将被自动归类予根证书所属的保护域，根证书与保护域的关系是：一个保护域可以有许多个根证书，而一个根证书只能对应于一个保护域。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;具体来讲， manufacturer 域属于设备制造商，其根证书是设备制造商自己的根证书；而 operator 域运营商，一般使用其 SIM 卡中的根证书；而 trusted third party 域则预置了全球知名的数字证书颁发机构 (CA) 的根证书，用于验证由 CA 颁发的 MIDlet 签名证书；而 untrusted 域没有根证书，将用于没有签名的 MIDlet 和 MIDP 1.0 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thawte 和 VeriSign 的根证书已经预置在 trusted third party 域 中，其 Java 代码签名证书可以用于签名 MIDlet 。当然，用户也可以选择使用设备制造商和移动运营商颁发的证书，只要其根证书已经包含在手机的 4 个保护域中。据 WoTrust 了解，大多数摩托罗拉 (Motorola) 手机只支持设备制造商域，所以，只能向 Motorola 申请签名服务了。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请注意：由于 MIDP 2.0 也在不断地修改和增补，所以，可能不用的移动网络运营商有不同的保护域和许可，用户可能需要向移动运营商了解详细信息。而最简单的方法是检查目标用户所使用的手机的根证书是否有计划购买的 MIDlet 签名证书的根证书。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.2 Untrusted MIDlet ( 不受信任的 MIDlet) &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP 2.0 定义了那些 API 是 untrusted 的，这些 Jar 文件的来源和完整性是不能被手机验证的。但这并不意味着这些 MIDlet 不能被安装和运行，而是运行这些 MIDlet 需要用户人工确认允许。而所有 MIDP 1.0 的 MIDlets 都被定义为 untrusted 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;untrusted 的 MIDlets 只能调用一个不需要许可保护的 API ，如： &lt;/p&gt;&lt;p&gt;java.util &lt;/p&gt;&lt;p&gt;java.lang &lt;/p&gt;&lt;p&gt;java.io &lt;/p&gt;&lt;p&gt;javax.microedition.rms &lt;/p&gt;&lt;p&gt;javax.microedition.midlet &lt;/p&gt;&lt;p&gt;javax.microedition.lcdui &lt;/p&gt;&lt;p&gt;javax.microedition.lcdui.game &lt;/p&gt;&lt;p&gt;javax.microedition.media &lt;/p&gt;&lt;p&gt;javax.microedition.media.control &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如果 untrusted MIDlet 套件试图调用一个被保护的 API 而且没有被人工允许，则会产生一个 SecurityException 而被 MIDlet 按照安全策略处理。请注意： Nokia 的 UI API 是不被保护的，包括类： com.nokia.mid.sound 和 com.nokia.mid.ui 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.3 Trusted MIDlets ( 可信任的 MIDlets) &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如果手机能验证 MIDlet 的身份和完整性 ( 也就是已经数字签名 ) ，则会自动分配一个合适的保护 域这种 MIDlet 套件就称为可信任的 MIDlet 。一个可信任的 MIDlet 套件所要求的许可将被准许，只要所属的保护域拥有这种许可，假如许可： javax.microedition.io.Connector.http 已经在所属保护域中是允许的，则 MIDlet 在打开一个 http 连接时是不需要用户确认的。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请不要混淆了可信任的 MIDlet 套件和可信任的保护域的不同，每个可信任的 MIDlet 套件依据安全策略被分配到一个特定的保护域。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;您需要使用一个手机中已经预置的根证书的证书颁发机构颁发的代码签名证书来签名 MIDlet ，否则将不能通过身份验证。成功签名后的 JAD 文件中一定会包含有整个签名证书的证书链，属性名称为： MIDlet-Certificate-1-1 就是您的签名证书，而 MIDlet-Certificate-1-2 就是 CA 的中级根证书，而 MIDlet-Certificate-1-3 就是 CA 的顶级根证书。同时还会有一个 MIDlet-Jar-RSA-SHA1 属性就是 JAR 文件的摘要。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;当一个 MIDlet 被下载或被安装时， MIDlet 应用管理器首先会检查 JAD 文件中是否包含了 MIDlet-Jar-RSA-SHA1 属 性，如果有，则启动如下验证过程：首先会读出 MIDlet-Certificate-1-1 、 MIDlet-Certificate-1-2 和 MIDlet-Certificate-1-3 属性中的证书，并与已经预置的根证书相比较，如果证书链能被根证书验证，则表明开发者身份已经被验证。接着就会使用用户证书来解密 MIDlet-Jar-RSA-SHA1 属 性的摘要，再计算出已经下载的 Jar 文件的摘要，比较两个摘要是否相等，如果相等，则表明 MIDlet 代码自签名后没有被修改。这样，既验证了身份又检查了完整性的 MIDlet 会被分配到所属根证书所对应的保护域中。但是，如果 MIDlet 中的许可属性 ( MIDlet-Permissions ) 中有一个或多个不属于所属的保护域，则仍然不允许安装。而如果 MIDlet 中的可选许可属性 ( MIDlet-Permissions-Opt ) 中有一个或多个不属于所属的保护域，会允许安装。可见，正确设置许可属性和可选许可属性非常重要。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.4 Function Groups ( 功能分组 ) &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;为了简化用户管理操作， MIDlet 把一些类似功能分组，这样，用户只需对功能组设置许可即可。如：许可 “Net Access”( 网络访问 ) 组来代替许可 javax.microedition.io.Connector.http ，这对于简化手机的交互操作非常有用。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP 2.0 和 JTWI 定义了如下 7 个功能组： &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(1) Net Access: 包括所有网络连接许可； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(2) Messaging: 包括所有与发送和接收短消息 ( 短信和彩信 等 ) 相关的许可； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(3) Auto Invocation : 包括与自动启动 MIDlet 相关的许可，如： Push Registration &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(4) Local Connectivity : 包括与本地连接相关的许可，如： IrDA 或 蓝牙； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(5) Multimedia Recording : 包括与允许录音、照相、摄像等相关的许可； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(6) Read User Data : 包括读取用户数据相关的许可，如：通讯录、日程表等； &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(7) Write User Data : 包括写用户数据相关的许可。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;不同的手机支持不同的功能组，如： Multimedia Recording 就不会包含在没有摄录装置的手机中。当然，也有可能将来会增加更多的功能组。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;功能组也同时定义了不同的域的不同交互方式，如：在不信任域， “Net Access” ( 网络访问 ) 被设置为 session( 短期适用 ) 或 denied( 拒绝 ) ，而在可信任域则可以设置为 oneshot 、 blanket 和 denied 的。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;三、仿真器和手机的缺省安全设置&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;让我们来看看具体的使用 Thawte 或 VeriSign 代码签名证书签名后的 MIDlet 在 trusted third party 域中的所有缺省许可，如下图 1 所示，点击 NDS 3.0 的“ Config Emulators ”就可以看到仿真器在 trusted third party 域的缺省安全设置是“ Ask first time ”，即第 1 次使用是需要确认：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;如下图 2 所示，您可以下拉所有功能组的许可设置，如“ Network Access ”就有 4 个选项可以修改： Ask first time 、 Ask every time 、 Always allowed 和 Not allowed ： &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;而如下图 3 所示，在“ Real Life ”模式，也就是实际手机的运行模式，可以看出：定义的 7 个功能组都是“ Always allowed ” ( 总是允许 ) ，这就显示出 MIDlet 签名对于开发商来讲是多么的重要，将大大方便了用户的使用，再也不需要用户操作烦人的系列确认了。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c13c4cbc-eda0-4aff-85e5-3d89530f01cc] --&gt;</description>
      <pubDate>Thu, 24 Jan 2008 09:31:30 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43129</guid>
      <dc:date>2008-01-24T09:31:30Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之IO读取(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43102</link>
      <description>&lt;!-- [DocumentBodyStart:e9bb1918-2e62-4702-9e75-1b5ac45dfa09] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;只以InputStream为例，讲讲IO读取的性能问题。&lt;/p&gt;&lt;p&gt;一般的硬件设备，或者网络，访问的速度都有可能存在一定的瓶颈。此外，建立连接的时间往往被我们忽略了。&lt;/p&gt;&lt;p&gt;特别是在J2ME所运行的受限平台上，这个连接的时间往往是不可忽略的。所以我们应该尽量减少连接次数，尽量一次交换更多的数据。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;先看看示范代码吧：&lt;/p&gt;&lt;p&gt;while ((ch = inputStream.read()) != -1) {&lt;/p&gt;&lt;p&gt;…&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;以上是标准代码，曾让我疑惑过：&lt;/p&gt;&lt;p&gt;使用while循环，一个一个读，会不会效率很低？&lt;/p&gt;&lt;p&gt;于是我拿了一个30K的文件，跟下面的方法对比了一下。&lt;/p&gt;&lt;p&gt;byte[] data = new byte[inputStream.available()];&lt;/p&gt;&lt;p&gt;inputStream.read(data);&lt;/p&gt;&lt;p&gt;结果这两个方法的速度不相上下。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;后来看了CLDC的源代码才发现，InputStream的read(byte[] data)等批量读取的方法都是在read()方法上加循环实现的。&lt;/p&gt;&lt;p&gt;原来是自己把自己耍了一回……&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;不过，能用批量读取的时候还是应该尽量用；万一某些平台，某些继承于InputStream的扩展类，用更高效的方法重载了批量读取方法呢？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;此外，还有一点很重要，很多情况是无法调用InputStream.available()函数的。特别是网络连接。这样才能叫“流”嘛。&lt;/p&gt;&lt;p&gt;这就需要使用缓冲来解决了，下面提供一个我写的方法，没什么大不了的，用起来感觉还不错，今天兴奋了就介绍一下。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:9006c5d3-c299-4657-9708-0cb428eab95b]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;private static final int BUFFER_SIZE = 1024;

 public static byte[] read(InputStream is) throws Exception {
&amp;nbsp; byte[] ret = null;
&amp;nbsp; if (is.available() &amp;gt; 0) {
&amp;nbsp;&amp;nbsp; ret = new byte[is.available()];
&amp;nbsp;&amp;nbsp; is.read(ret);
&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp; int rd;
&amp;nbsp;&amp;nbsp; Vector temp = new Vector();
&amp;nbsp;&amp;nbsp; int size = 0;
&amp;nbsp;&amp;nbsp; while (true) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] buffer = new byte[BUFFER_SIZE];
&amp;nbsp;&amp;nbsp;&amp;nbsp; rd = is.read(buffer, 0, BUFFER_SIZE);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rd == BUFFER_SIZE) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp.addElement(buffer);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size += BUFFER_SIZE;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rd &amp;gt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size += rd;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int tsize = temp.size();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = new byte[size];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; tsize; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] t = (byte[]) temp.elementAt(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.arraycopy(t, 0, ret, i * BUFFER_SIZE,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BUFFER_SIZE);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rd &amp;gt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.arraycopy(buffer, 0, ret, tsize * BUFFER_SIZE,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rd);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }
&amp;nbsp; return ret;
 }
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:9006c5d3-c299-4657-9708-0cb428eab95b]--&gt;&lt;p&gt;这个方法使用了Vector，有些人可能觉得它影响效率。&lt;/p&gt;&lt;p&gt;其实不然，我测试过。&lt;/p&gt;&lt;p&gt;之所以使用这个有点变态的方法，是因为我向来比较抠，最讨厌遇到不能获取长度的Stream啦，定义多大的缓冲都怕不合适。&lt;/p&gt;&lt;p&gt;于是，就使用了这样一个爱死不死的方法。反正手机内存就那点，我也不去费心去选取buffer长度了，让它自己看着办。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e9bb1918-2e62-4702-9e75-1b5ac45dfa09] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:40:11 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43102</guid>
      <dc:date>2008-01-23T06:40:11Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>请教：关于push短信注册端口的问题</title>
      <link>http://developer.sonyericsson.com/community/thread/43746</link>
      <description>&lt;!-- [DocumentBodyStart:87726b2b-c95c-4776-a1c1-f13a34c09523] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我们公司开发了一款手机KJava应用软件，需要用到短信激活，所以使用了push短信注册端口，今天以前该端口一直使用没有问题，但今天突然发现如果卸载掉软件后再安装就始终安装失败，而且只要是安装注册该端口号的KJava程序都会失败，而修改成其他端口后就没有问题，请问这是什么原因造成的？这款软件使用了数字签名，是否跟签名有关？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:87726b2b-c95c-4776-a1c1-f13a34c09523] --&gt;</description>
      <pubDate>Tue, 04 Mar 2008 07:01:22 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43746</guid>
      <dc:date>2008-03-04T07:01:22Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:messageCount>9</clearspace:messageCount>
      <clearspace:replyCount>8</clearspace:replyCount>
    </item>
    <item>
      <title>问:S700的amr发音问题</title>
      <link>http://developer.sonyericsson.com/community/thread/42885</link>
      <description>&lt;!-- [DocumentBodyStart:3b06f129-99c3-49af-9fd2-32bc4d25aeed] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;调用Manager.createPlayer(... , "audio/amr");&amp;nbsp; 处理amr发音的时候, 第一次发音的音量总是很小, 以后每调用一次音量就会升高一些, 直到正常音量.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问如何正确调用才能够避免这种现象?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:3b06f129-99c3-49af-9fd2-32bc4d25aeed] --&gt;</description>
      <pubDate>Thu, 10 Jan 2008 08:30:15 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42885</guid>
      <dc:date>2008-01-10T08:30:15Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之使用调色板修改png图片(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43109</link>
      <description>&lt;!-- [DocumentBodyStart:711f6d30-cb6e-4b47-9959-7ca392ca8615] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;今天在硬盘上挖出这个存放了几年的代码。又回忆起3年前的那个j2me手机游戏程序员……&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这个算法是参考一位高人的文章，直接读取并修改png格式图片的调色板，然后生成新的调色板替代原来的。&lt;/p&gt;&lt;p&gt;这样可以实现游戏中常见的变色效果，可以解决游戏容量有限，不能存放太多精灵图片的问题。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;具体过程其实并不复杂，大家可以先搜索资料，先看看png图片的格式定义。这个算法正是找到调色板区，根据原有格式修改之后，生成新的crc校验码，然后替换原来的调色板。这样就可以用一个png图片，创建多个变色副本。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:9e122cd1-ab1c-46bd-8761-0e66a8fa7774]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class PalettedImage {

&amp;nbsp;&amp;nbsp;&amp;nbsp; public Image getPalettedImage(byte[] data, int[] originalColors,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] palettedColors) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] tempData = new byte[data.length];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.arraycopy(data, 0, tempData, 0, data.length);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image img = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] parameter = { 0, 0, 0 };
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; analyze(tempData, parameter);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; originalColors.length; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; replaceColor(tempData, parameter, originalColors+,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; palettedColors+);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillData(tempData, parameter);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img = Image.createImage(tempData, 0, data.length);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("getPalettedImage&amp;nbsp; &amp;amp;&amp;amp;&amp;nbsp; " + e.toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return img;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void analyze(byte[] data, int[] para) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int offset = 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int chunkLen = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (data[offset + 4] != 0x50 || data[offset + 5] != 0x4c
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || data[offset + 6] != 0x54 || data[offset + 7] != 0x45) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chunkLen = readInt(data, offset);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; offset += (4 + 4 + chunkLen + 4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chunkLen = readInt(data, offset);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; para[2] = chunkLen / 3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; para[0] = offset + 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; para[1] = offset + 8 + chunkLen;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private int readInt(byte[] data, int offset) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ((data[offset] &amp;amp; 0xFF) &amp;lt;&amp;lt; 24)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ((data[offset + 1] &amp;amp; 0xFF) &amp;lt;&amp;lt; 16)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ((data[offset + 2] &amp;amp; 0xFF) &amp;lt;&amp;lt; 8) | (data[offset + 3] &amp;amp; 0xFF);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void replaceColor(byte[] data, int[] para, int oldColor,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int newColor) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte rr = (byte) ((oldColor &amp;gt;&amp;gt; 16) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte gg = (byte) ((oldColor &amp;gt;&amp;gt; 8) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte bb = (byte) (oldColor &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0, offset = para[0], temp = 0; i &amp;lt; para[2]; i++, offset += 3) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rr == data[offset] &amp;amp;&amp;amp; gg == data[offset + 1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; bb == data[offset + 2]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[offset] = (byte) ((newColor &amp;gt;&amp;gt; 16) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[offset + 1] = (byte) ((newColor &amp;gt;&amp;gt; 8) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[offset + 2] = (byte) (newColor &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void fillData(byte[] data, int[] para) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int checksum = update_crc(data, para[0] - 4, para[2] * 3 + 4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[para[1]] = (byte) ((checksum &amp;gt;&amp;gt; 24) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[para[1] + 1] = (byte) ((checksum &amp;gt;&amp;gt; 16) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[para[1] + 2] = (byte) ((checksum &amp;gt;&amp;gt; 8) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[para[1] + 3] = (byte) ((checksum) &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private int update_crc(byte[] buf, int off, int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c = 0xffffffff;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n, k;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int xx;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int[] crc_table = new int[256];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n = 0; n &amp;lt; 256; n++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx = n;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (k = 0; k &amp;lt; 8; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((xx &amp;amp; 1) == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx = 0xedb88320 ^ (xx &amp;gt;&amp;gt;&amp;gt; 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx = xx &amp;gt;&amp;gt;&amp;gt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crc_table[n] = xx;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (n = off; n &amp;lt; len + off; n++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = crc_table[(c ^ buf[n]) &amp;amp; 0xff] ^ (c &amp;gt;&amp;gt;&amp;gt; 8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (c ^ 0xffffffff);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:9e122cd1-ab1c-46bd-8761-0e66a8fa7774]--&gt;&lt;p&gt;接口就是getPalettedImage()函数，只需要输入原始图片的byte数组，以及需要替换颜色的颜色值还有目标颜色值就行了。因为可以同时替换多个颜色，所以输入参数是代表颜色的整形的数组。总之，要保证原始颜色与目标颜色一一对应就好了。方法简单实用。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;欢迎大家使用并留下宝贵的意见。当然，也可以修改一下这个函数，做一些特殊的效果。这里就不多说了。&lt;/p&gt;&lt;p&gt;不过这个代码用处已经不大，因为现在的手机基本上都支持midp2.0所以可以使用更方便的方法替换颜色。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;总之，再次感谢这位已经被我忘掉名字的大侠，关键代码是他写的，我只是修改整理而已。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:711f6d30-cb6e-4b47-9959-7ca392ca8615] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:57:19 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43109</guid>
      <dc:date>2008-01-23T06:57:19Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>PIM中fromSerialFormat方法问题</title>
      <link>http://developer.sonyericsson.com/community/thread/42568</link>
      <description>&lt;!-- [DocumentBodyStart:b9f4ad76-24e4-44e6-bbfd-b06f19be2c80] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;需要完成一个从服务器获取联系人信息，存入手机中的工作，我将下面操作PIM的代码放在一个线程中，在w200上跑，运行到fromSerialFormat方法时，线程发生阻塞了；在w810上，问题同样；但是在k750可以跑通。请问，该如何解决？&lt;/p&gt;&lt;!--[CodeBlockStart:5a4e5f00-7637-4acf-88c2-e6c4b9bae41c]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;// 个人信息列表 可读写
PIMList list = PIM.getInstance().openPIMList(PIM.CONTACT_LIST,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIM.READ_WRITE);
// 创建一个输入流
ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());
DataInputStream dis = new DataInputStream(bais);
// fromSerialFormat接受一个输入流，并将其转化为一个PIMItem类型的数组
PIMItem[] items = PIM.getInstance().fromSerialFormat(dis, "UTF-8");
// 创建一个联系人实例
Contact c = ((ContactList) list).createContact();
c = (Contact) items[0];
 // 导入vCard信息
Contact contact = ((ContactList) list).importContact(c);
// 提交修改
contact.commit();&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:5a4e5f00-7637-4acf-88c2-e6c4b9bae41c]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b9f4ad76-24e4-44e6-bbfd-b06f19be2c80] --&gt;</description>
      <pubDate>Sat, 15 Dec 2007 03:08:00 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42568</guid>
      <dc:date>2007-12-15T03:08:00Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>ucweb，国内最好的www浏览器。</title>
      <link>http://developer.sonyericsson.com/community/thread/47900</link>
      <description>&lt;!-- [DocumentBodyStart:a8d128a0-cf43-4e60-92f3-e66e7df19561] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;希望大家帮忙测试一下ucweb，给我们多提意见。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.ucweb.com/index.shtml"&gt;http://www.ucweb.com/index.shtml&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;做最好的中国人自己的浏览器。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a8d128a0-cf43-4e60-92f3-e66e7df19561] --&gt;</description>
      <pubDate>Tue, 13 Jan 2009 04:25:13 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47900</guid>
      <dc:date>2009-01-13T04:25:13Z</dc:date>
      <clearspace:dateToText>10 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>j2me经验总结之Vector(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43098</link>
      <description>&lt;!-- [DocumentBodyStart:a0745cd6-48e4-4bb2-912b-f34075a5ac81] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;Vector是在java编程中比较常用的动态数组。一直以为它是个数组的链表，当内存不够用了，就新申请一个capacityIncrement大小的数组，连到原来的链表上。&lt;/p&gt;&lt;p&gt;在仔细阅读源代码后发现，Vector并没有任何链表的性质。它是一个纯粹的数组。当内存不够用时，就重新初始化一个容量较大新数组，然后使用System.arraycopy()函数将原有的数组copy到新的数组当中。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;System.arraycopy()是一个由系统平台来实现的函数，这样的系统调用性能是比较高的。&lt;/p&gt;&lt;p&gt;即使如此，我们在写程序时，注意initialCapacity（初始容量）和capacityIncrement（增量）的设置，将会有效的减少重新定义数组并且拷贝数组的次数。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;例如：&lt;/p&gt;&lt;p&gt;&amp;nbsp; Vector v = new Vector(10, 10);//初始容量为10，增量10&lt;/p&gt;&lt;p&gt;&amp;nbsp; Integer[] ints = new Integer[11];&lt;/p&gt;&lt;p&gt;&amp;nbsp; for (int i = 0; i &amp;lt; ints.length; i++) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; ints+ = new Integer(i);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; v.addElement(ints+);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;在这里，当v添加第11个Integer的时候，v就会自动创建一个长度为20的数组（当前容量+增量），以后每次装满数组，都会重新按增量追加数组长度。&lt;/p&gt;&lt;p&gt;所以，设置一个合适的初始容量和增量，将会提高Vector的效率。千万别像我一样，把它当做链表。因为链表在增长空间时是不会影响到以前使用的空间和数据的。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我想指出一点，因为Vector中存储的，实际上都是Object变量，大家可以把它理解为指针。重新初始化Vector内置的数组并且拷贝，相当于对一个指针数组进行操作，并不等同于对输入类型的重新分配内存。&lt;/p&gt;&lt;p&gt;就是说Vector的重新分配，不论进行多少次都不涉及到Integer对象的创建，拷贝等工作。它只是重新创建并拷贝“指针”数组，也就是Object数组。&lt;/p&gt;&lt;p&gt;此外，java中有一个容易被忽视的基本概念。当某个对象再没有指向该对象的引用时，垃圾回收器才会自动将其自动释放。不小心使用，很容易给程序造成内存问题。&lt;/p&gt;&lt;p&gt;例如：&lt;/p&gt;&lt;p&gt;&amp;nbsp; Vector v = new Vector(10, 10);//初始容量为10，增量10&lt;/p&gt;&lt;p&gt;&amp;nbsp; Integer[] ints = new Integer[11];&lt;/p&gt;&lt;p&gt;&amp;nbsp; for (int i = 0; i &amp;lt; ints.length; i++) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; ints+ = new Integer(i);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; v.addElement(ints+);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; ints = null;//对它的释放将造成数组元素的释放。但是由于v中还保存有元素的引用，所以这些Integer对象并不会被回收。&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;我强调这个问题，是因为曾经写过一段代码：&lt;/p&gt;&lt;p&gt;Image img = Image.createImage(”/xxx.png”);&lt;/p&gt;&lt;p&gt;Image img2 = img;&lt;/p&gt;&lt;p&gt;这张图片非常大，在使用完img之后，我释放掉它，然后重新申请另一个图片。于是，内存爆了。因为img2仍然持有xxx.png的引用，所以无法释放。&lt;/p&gt;&lt;p&gt;Vectro中存储的也是引用，所以在使用时应该更加注意编程规范，以免发生类似的问题。其实应该尽量避免使用多个引用。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;上面说了这些题外话，正是想警告各位程序员，Vector是一个可变的Object数组，一个引用数组。所以请大家使用时要小心，别想当然的以为它是一个容器，它里面存储的可不是对象，而是引用。&lt;/p&gt;&lt;p&gt;而且，在释放曾经加入到vector的对象时，对象本身并不会被真正释放，得到回收。只是原有的引用无法再使用罢了。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;最后还有一点技巧。&lt;/p&gt;&lt;p&gt;应该尽量使用索引获取对象，避免使用IndexOf()方法。把它当做堆栈来使用时更应该注意，要避免使用insertElementAt()方法。&lt;/p&gt;&lt;p&gt;此外，j2me中的Stack类是基于Vector实现的，使用时也要留心。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;消息编辑由: hunhun1981&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a0745cd6-48e4-4bb2-912b-f34075a5ac81] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:08:14 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43098</guid>
      <dc:date>2008-01-23T06:08:14Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>請問在j2me上如何壓縮圖檔為 jpg 格式</title>
      <link>http://developer.sonyericsson.com/community/thread/42988</link>
      <description>&lt;!-- [DocumentBodyStart:0afa8f4e-1a93-4cf4-b723-d196712e25a4] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我利用了 createImage(byte[] imageData, int imageOffset, int imageLength) 來建立新的 Image檔案，透過 createThumbnail(Image image) 來縮圖，但是，卻發生了兩個問題，&lt;/p&gt;&lt;p&gt;1. 似乎在 j2me 裡無法將太大的檔案縮小 或是 無法將檔案 縮至 64*32 以上，會發生圖檔毀損或是 記憶體出錯的問題產生。&amp;nbsp; &lt;/p&gt;&lt;p&gt;2. 無法將 Image 格式 轉換成 jpg 檔案格式，曾試著將 Image 轉成 ARGB 的 rawbyte array ，接著就不知道該如何進行轉換為 jpg 的步驟。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;請問有人有任何建議或是經驗可以提示嗎 ?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;createThumbnail(Image image) --&amp;gt; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://developers.sun.com/mobility/midp/articles/picture/"&gt;http://developers.sun.com/mobility/midp/articles/picture/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;byte[] getByteArray(Image image) --&amp;gt; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.j2medev.com/bbs/dispbbs.asp?boardID=19&amp;amp;ID=4272&amp;amp;star=2"&gt;http://www.j2medev.com/bbs/dispbbs.asp?boardID=19&amp;amp;ID=4272&amp;amp;star=2&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;null&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0afa8f4e-1a93-4cf4-b723-d196712e25a4] --&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:35:26 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42988</guid>
      <dc:date>2008-01-16T08:35:26Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>关于获得索爱手机厂商的数字签名</title>
      <link>http://developer.sonyericsson.com/community/thread/46338</link>
      <description>&lt;!-- [DocumentBodyStart:6f2e519c-522a-467b-bb95-10eb2e4d038f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我们UT斯达康有一项与浙江移动公司合作开发的JAVA版手机阅读器项目,用到了JSR75等受限API,所以需要贵公司的手机厂商签名授权.请问获得此签名需要通过什么方式和渠道?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6f2e519c-522a-467b-bb95-10eb2e4d038f] --&gt;</description>
      <pubDate>Wed, 17 Sep 2008 09:26:38 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46338</guid>
      <dc:date>2008-09-17T09:26:38Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>j2me经验总结之URLEncoding(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43100</link>
      <description>&lt;!-- [DocumentBodyStart:88b79b89-ffb3-4f95-b9c0-2ef4b1b0722d] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;URLEncoding是用于解决链接字符串中包含中文字符的一种转换编码。各种编程环境下几乎带有它的库函数。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;不过，J2ME除外。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;好在JAVA的源代码中带有这个类，我们把它拷贝到J2ME环境下编译到我们的应用当中就可以了。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;该文件位于JDK的目录下src.zip文件中，名叫URLEncoder.java。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但是，这个文件还需要做很多修改才能使用在J2ME环境中。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;先警告大家，有几个真机（其中一个就是索爱的，好像是k500c），不管输入什么样的Encodeing都会出错，甚至是“UTF-8”。所以我一怒之下去除了Encodeing参数。（这可是在实际应用中得出的结论，不去掉的话可以在大部分情况下正常使用，但是，现实总是有点缺陷）&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;修改后的代码如下，大家请放心使用。如果有兴趣，可以比较两个代码，看看我改动了什么地方。&lt;/p&gt;&lt;!--[CodeBlockStart:7eb766d9-1ed1-4014-8cf8-0284a60f7123]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
public class HURLEncoder {

 private static boolean[] dontNeedEncoding;

 static {
&amp;nbsp; dontNeedEncoding = new boolean[256];

&amp;nbsp; for (int i = 0; i &amp;lt; 256; i++) {
&amp;nbsp;&amp;nbsp; boolean b = ((i &amp;gt;= ‘0′) &amp;amp;&amp;amp; (i &amp;lt;= ‘9′))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; || ((i &amp;gt;= ‘A’) &amp;amp;&amp;amp; (i &amp;lt;= ‘Z’)) || ((i &amp;gt;= ‘a’) &amp;amp;&amp;amp; (i &amp;lt;= ‘z’));

&amp;nbsp;&amp;nbsp; dontNeedEncoding+ = b;
&amp;nbsp; }

&amp;nbsp; dontNeedEncoding[’ ‘] = true;
&amp;nbsp; dontNeedEncoding[’-'] = true;
&amp;nbsp; dontNeedEncoding[’_'] = true;
&amp;nbsp; dontNeedEncoding[’.'] = true;
&amp;nbsp; dontNeedEncoding[’*'] = true;
 }

 public static String encode(String s) {

&amp;nbsp; boolean wroteUnencodedChar = false;

&amp;nbsp; StringBuffer writer = new StringBuffer();

&amp;nbsp; StringBuffer out = new StringBuffer(s.length());

&amp;nbsp; for (int i = 0; i &amp;lt; s.length(); i++) {
&amp;nbsp;&amp;nbsp; char c = s.charAt(i);

&amp;nbsp;&amp;nbsp; if ((c &amp;lt; 256) &amp;amp;&amp;amp; dontNeedEncoding[c]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c == ‘ ‘) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = ‘+’;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; out.append((char) c);
&amp;nbsp;&amp;nbsp;&amp;nbsp; wroteUnencodedChar = true;
&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (wroteUnencodedChar) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wroteUnencodedChar = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.append(c);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c &amp;gt;= 0xD800 &amp;amp;&amp;amp; c &amp;lt;= 0xDBFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((i + 1) &amp;lt; s.length()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d = (int) (s.charAt(i + 1));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (d &amp;gt;= 0xDC00 &amp;amp;&amp;amp; d &amp;lt;= 0xDFFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.append(d);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; String str = writer.toString();

&amp;nbsp;&amp;nbsp;&amp;nbsp; ByteArrayOutputStream baos = new ByteArrayOutputStream();
&amp;nbsp;&amp;nbsp;&amp;nbsp; DataOutputStream dos = new DataOutputStream(baos);
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.writeUTF(str);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.flush();
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] temp = baos.toByteArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] ba = new byte[temp.length - 2];
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int ix = 0; ix &amp;lt; ba.length; ix++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ba[ix] = temp[ix + 2];
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; ba.length; j++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.append(’%');

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char ch = forDigit((ba[j] &amp;gt;&amp;gt; 4) &amp;amp; 0xF, 16);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.append(ch);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ch = forDigit(ba[j] &amp;amp; 0xF, 16);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.append(ch);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; writer = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dos.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; baos.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; return out.toString();
 }

 private static char forDigit(int digit, int radix) {
&amp;nbsp; if ((digit &amp;gt;= radix) || (digit &amp;lt; 0)) {
&amp;nbsp;&amp;nbsp; return ‘0′;
&amp;nbsp; }
&amp;nbsp; if (digit &amp;lt; 10) {
&amp;nbsp;&amp;nbsp; return (char) (’0′ + digit);
&amp;nbsp; }
&amp;nbsp; return (char) (’A’ + digit - 10);
 }
} &lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:7eb766d9-1ed1-4014-8cf8-0284a60f7123]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:88b79b89-ffb3-4f95-b9c0-2ef4b1b0722d] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:28:35 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43100</guid>
      <dc:date>2008-01-23T06:28:35Z</dc:date>
      <clearspace:dateToText>10 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>如何发送envelope apdu?</title>
      <link>http://developer.sonyericsson.com/community/thread/48336</link>
      <description>&lt;!-- [DocumentBodyStart:bbe31235-ca98-4956-a6ca-f395c1e66b45] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我想用手机向sim发送envelope apdu,用的是w595c. 我已经把手机模式设为Java开发者模式,但是在建立连接时(cardConnection0 = (APDUConnection)Connector.open("apdu:0;target=SAT")),出现异常,系统返回java.lang.securityException,再没其它信息了,在netbeans调试过程中显示securityException的值是"7",不知道我需要怎样做,才能建立连接并正常发送envelope apdu指令?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我现在使用的sim卡,是能够处理envelope apdu指令的.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:bbe31235-ca98-4956-a6ca-f395c1e66b45] --&gt;</description>
      <pubDate>Fri, 13 Feb 2009 07:44:50 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48336</guid>
      <dc:date>2009-02-13T07:44:50Z</dc:date>
      <clearspace:dateToText>9 months, 1 week ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>啥是 capuchin 啊？</title>
      <link>http://developer.sonyericsson.com/community/thread/46131</link>
      <description>&lt;!-- [DocumentBodyStart:af570e26-dfe4-49fd-aa56-958b2cad3597] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;啥是 capuchin 啊？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:af570e26-dfe4-49fd-aa56-958b2cad3597] --&gt;</description>
      <pubDate>Tue, 02 Sep 2008 07:16:47 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46131</guid>
      <dc:date>2008-09-02T07:16:47Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>Services MXPs 是什么东西？JAVA需要干什么？</title>
      <link>http://developer.sonyericsson.com/community/thread/49235</link>
      <description>&lt;!-- [DocumentBodyStart:c1e7cfc8-f955-4924-96a5-d8c89055204e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;    今天看到了Services MXPs这个东西，这到底是干什么用的？以前只接触过J2ME ，对于J2SE我都不是很懂。看到PDF文档上的介绍，感觉这个东西跟J2ME没关系，capuchin.service.generator_4.0.0跟它应该是配套的吧？我还没找到API。。。总之，有谁明白这个Services MXPs有什么用，与J2ME有啥关系，请给小弟解释一下，感激不尽。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c1e7cfc8-f955-4924-96a5-d8c89055204e] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">services</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">mxps</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">capuchin.service.generator_4.0.0</category>
      <pubDate>Tue, 23 Jun 2009 06:34:04 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/49235</guid>
      <dc:date>2009-06-23T06:34:04Z</dc:date>
      <clearspace:dateToText>5 months, 17 minutes ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>JSR75读取电话本</title>
      <link>http://developer.sonyericsson.com/community/thread/44711</link>
      <description>&lt;!-- [DocumentBodyStart:9b29ab8f-bfe8-4a42-a6e4-96bef3a803b7] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;在JP7平台上读取电话本，遇到一个奇怪的问题，有时侯会读不全电话本。有那位大侠遇到过类似问题？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9b29ab8f-bfe8-4a42-a6e4-96bef3a803b7] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">j2me</category>
      <pubDate>Thu, 08 May 2008 07:50:55 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/44711</guid>
      <dc:date>2008-05-08T07:50:55Z</dc:date>
      <clearspace:dateToText>1 year, 6 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>索爱k858c的两个小问题</title>
      <link>http://developer.sonyericsson.com/community/thread/43112</link>
      <description>&lt;!-- [DocumentBodyStart:14635716-d7b5-4368-b02e-8b1f2a7489d0] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;一个是使用platformRequest("tel:13523423434");这样的方法，拨打普通号码是没有问题的。&lt;/p&gt;&lt;p&gt;但是，大部分手机都能够支持platformRequest("tel:83246234P123");这样通过加P的方式直接拨打分机。&lt;/p&gt;&lt;p&gt;索爱K858c不行，至少我测试的时候不行。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;除此之外，它的摄像头调用还有一些小毛病。&lt;/p&gt;&lt;p&gt;比如，使用VideoControl.getSnapshot(null);方式拍摄图像时，是无法使用JSR234的缩放等高级多媒体控制功能的（预览时可以看到缩放，但是拍摄结果却是原始图像）。&lt;/p&gt;&lt;p&gt;并且，k858c的摄像头调用不够稳定，连续拍摄一段时间后，有可能会异常（我说的是在J2ME中使用getSnapshot进行拍摄）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;希望以后能够改进这方面的功能。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:14635716-d7b5-4368-b02e-8b1f2a7489d0] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 07:09:29 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43112</guid>
      <dc:date>2008-01-23T07:09:29Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>7</clearspace:messageCount>
      <clearspace:replyCount>6</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME测试小工具（camera）(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43121</link>
      <description>&lt;!-- [DocumentBodyStart:c1e7ebcb-6983-460a-b671-f0ad72d1e621] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;在开发k858c应用的时候，跟索爱的工程师做了很多沟通。非常感谢他们热情的帮助。&lt;/p&gt;&lt;p&gt;这个简单的测试类，就是当时用来做简单测试的一个工具。请大家多注意被注释掉的部分。恢复它就可以用来测试jsr234的部分功能（因为大部分手机不支持jsr234，所以屏蔽掉了）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;摄像头操作往往是比较烦人的内容，往往不能用一个统一的代码来使用所有的手机。&lt;/p&gt;&lt;p&gt;这个测试目前仅包含了基本的功能（预览和快照）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但是，我注释掉的代码中，还包含了其它一些JSR234中关于摄像头操作的高级功能，比如自动聚焦，缩放，自动感光等等。有兴趣的朋友，可以恢复那些代码并结合JSR234的文档，仔细研究研究。此外，我还写了一个保存照片的DeviceWirteFile函数，可以用来检测摄像头的真实拍摄效果（我们的软件需要对获取的图像进行解码，所以有这样的需求）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:edba6f4f-2c43-4614-8408-153802f9c3ba]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;import java.util.Vector;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.media.control.VideoControl;
import javax.microedition.midlet.MIDlet;

public class CameraMID extends MIDlet implements CommandListener ...{

&amp;nbsp;&amp;nbsp;&amp;nbsp; private MyCanvas canvas;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Player myPlayer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private VideoControl videoControl = null;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; private FocusControl focusControl = null;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; private ZoomControl zoomControl = null;
//&amp;nbsp;&amp;nbsp;&amp;nbsp; private ExposureControl exposureControl = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Vector er = new Vector();

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Form form;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdPlay;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdError;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdQuit;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static CameraMID mid;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public byte[] data;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Image img;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public CameraMID() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form = new Form("test");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdPlay = new Command("play", Command.OK, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdError = new Command("show error", Command.ITEM, 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdQuit = new Command("quit", Command.EXIT, 2);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(cmdPlay);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(cmdError);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(cmdQuit);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.setCommandListener(this);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(this).setCurrent(form);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; canvas = new MyCanvas();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid = this;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String str = System.getProperty("video.snapshot.encodings");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (null == str) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str = "SSN";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str = "SSY";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement(str);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement(e.toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(Command c, Displayable d) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.equals(cmdPlay)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(this).setCurrent(canvas);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initPlayer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (c.equals(cmdError)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.deleteAll();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; er.size(); i++) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append((String) er.elementAt(i));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (c.equals(cmdQuit)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyDestroyed();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void initPlayer() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Thread() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; freePlayer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer = Manager.createPlayer("capture://video");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer.realize();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl = (VideoControl) myPlayer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getControl("VideoControl");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; canvas);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer.start();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setVisible(true);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setDisplayLocation(20, 18);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setDisplaySize(200, 230);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement(e.toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; focusControl = (FocusControl) myPlayer
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getControl("FocusControl");
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (focusControl.isMacroSupported()) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; focusControl.setMacro(true);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (focusControl.isAutoFocusSupported()) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autoFocusFlg = true;
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autoFocusFlg = false;
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("focus " + e.toString());
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl = (ZoomControl) myPlayer
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getControl("ZoomControl");
//
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(100);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("zoom " + e.toString());
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
//
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exposureControl = (ExposureControl) myPlayer
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getControl("ExposureControl");
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exposureControl.setISO(0);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("exposure " + e.toString());
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }.start();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void freePlayer() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer.stop();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer.deallocate();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myPlayer.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void snapshot() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Thread() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("getSnapshot ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = videoControl.getSnapshot("encoding=jpeg&amp;amp;width=640&amp;amp;height=480");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("getSnapshot end ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img = Image.createImage(data, 0, data.length);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.deleteAll();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(img);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(mid).setCurrent(form);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("end ");

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String time = Long.toString(System.currentTimeMillis());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String path = "file:///C:/pictures/" + time + ".png";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeviceWirteFile(data, path);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("snapshot " + e.toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }.start();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void zoomIn() ...{
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (zoomControl != null) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.NEXT);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void zoomOut() ...{
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (zoomControl != null) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomControl.setDigitalZoom(ZoomControl.PREVIOUS);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public void autoFocus() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (autoFocusFlg) ...{
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; focusControl.setFocus(-1000);
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; er.addElement("autofocus " + e.toString());
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private boolean autoFocusFlg = false;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private class MyCanvas extends Canvas implements CommandListener ...{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdOK;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdBack;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdFocus;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyCanvas() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdOK = new Command("snapshot", Command.OK, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdBack = new Command("back", Command.BACK, 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdFocus = new Command("auto focus", Command.ITEM, 2);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addCommand(cmdOK);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addCommand(cmdBack);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addCommand(cmdFocus);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setCommandListener(this);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void paint(Graphics g) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(Command c, Displayable d) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.equals(cmdOK)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autoFocus();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (c.equals(cmdBack)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; freePlayer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(mid).setCurrent(form);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (c.equals(cmdFocus)) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autoFocus();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void keyRepeated(int key) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int nk = getGameAction(key);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (nk) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case UP:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case LEFT:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomIn();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case DOWN:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case RIGHT:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zoomOut();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void DeviceWirteFile(byte[] data, String fileName) throws Exception ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // FileConnection conn = (FileConnection) Connector.open(fileName,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Connector.READ_WRITE);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if (conn.exists()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // conn.delete();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // conn.create();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // conn.create();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // OutputStream os = conn.openOutputStream();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // os.write(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // os.flush();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // os.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // conn.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void destroyApp(boolean arg0) ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void pauseApp() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void startApp() ...{
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:edba6f4f-2c43-4614-8408-153802f9c3ba]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c1e7ebcb-6983-460a-b671-f0ad72d1e621] --&gt;</description>
      <pubDate>Thu, 24 Jan 2008 01:38:45 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43121</guid>
      <dc:date>2008-01-24T01:38:45Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>SE_W200C使用TextBox控件输入中文时自动重启问题</title>
      <link>http://developer.sonyericsson.com/community/thread/45158</link>
      <description>&lt;!-- [DocumentBodyStart:a717c326-08c2-477c-87a0-4c45fe66d464] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我写了个测试程序，用TextBox控件获取用户输入，然后将输入字符串画在Canvas上。用Se_W200C运行该测试发现如下问题：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1.在输入中文时，重复操作2次左右，手机会自动重启。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.输入英文字母时，不会出现重启现象。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;测试程序源代码如下 （jar见附件！）：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDlet类：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;import javax.microedition.midlet.MIDlet;&lt;/p&gt;&lt;p&gt;import javax.microedition.midlet.MIDletStateChangeException;&lt;/p&gt;&lt;p&gt;import javax.microedition.lcdui.Display;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class TestMIDlet extends MIDlet {&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Display display = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private TestCanvas can = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TestMIDlet() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated constructor stub&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display=Display.getDisplay(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; can=new TestCanvas(this,display);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void destroyApp(boolean arg0) throws MIDletStateChangeException {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated method stub&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void pauseApp() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated method stub&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void startApp() throws MIDletStateChangeException {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO Auto-generated method stub&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void exitApp(){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; destroyApp(false);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyDestroyed();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;Canvas类：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;import javax.microedition.lcdui.*;&lt;/p&gt;&lt;p&gt;public class TestCanvas extends Canvas implements CommandListener{&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int width=0,height=0;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private TestMIDlet midlet=null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Display display = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private TextBox tb = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command exitCmd = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command inputCmd = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command okCmd = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command backCmd = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String content = "input any string";&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public TestCanvas(TestMIDlet mid,Display dis){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.midlet=mid;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.display=dis;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width=getWidth();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; height=getHeight();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb=new TextBox("Input","",256,TextField.ANY);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exitCmd=new Command("Exit",Command.EXIT,2);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inputCmd = new Command("Input",Command.OK,1);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; okCmd= new Command("Ok",Command.OK,1);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; backCmd=new Command("Back",Command.BACK,2);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.addCommand(inputCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.addCommand(exitCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setCommandListener(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.addCommand(okCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.addCommand(backCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.setCommandListener(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display.setCurrent(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void paint(Graphics g){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setColor(0x0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.fillRect(0, 0, width, height);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setColor(0x00ffffff);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawString(content, 5, 10, Graphics.TOP|Graphics.LEFT);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(Command cmd,Displayable dis){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dis==this){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cmd==exitCmd){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; midlet.exitApp();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(cmd==inputCmd){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(tb==null){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb=new TextBox("Input","",256,TextField.ANY);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.addCommand(okCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.addCommand(backCmd);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb.setCommandListener(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display.setCurrent(tb);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(dis==tb){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cmd==okCmd){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content=tb.getString();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(cmd==backCmd){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; display.setCurrent(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb=null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; repaint();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;} &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请有经验的同学帮我看看该问题，不胜感激。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a717c326-08c2-477c-87a0-4c45fe66d464] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">se</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">中文</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">j2me</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">w200c</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">手机重启</category>
      <pubDate>Thu, 12 Jun 2008 09:21:55 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/45158</guid>
      <dc:date>2008-06-12T09:21:55Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>J2ME测试小工具（browser）(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43120</link>
      <description>&lt;!-- [DocumentBodyStart:504bf971-00cd-4538-8d7a-9b483982ec37] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;之前说到k858c拨打分机的问题。大家可以用这个代码进行测试。&lt;/p&gt;&lt;p&gt;至少我所测试的2个k858c和一个k850i都无法正确的直接拨打分机号。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MIDP2.0中有一个非常有用的platformRequest函数。我们可以用它来调用手机自带浏览器访问指定的url，或者也可以用来拨叫指定的电话号码（详情请参考WTK的文档）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;之所以写这个测试，是因为很多国产或者中小厂商的手机对MIDP2.0规范支持得并不准确。有的不能调浏览器，有的则不能打电话。还有的则是电话号码中不能支持用P直拨分机号（88888888P666，就是拨打88888888的666分机）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;具体测试时，大家可以将TextField修改为自己想要测试的内容。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:880102ca-29d5-406c-a8e6-0bd03d5826e5]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;

public class BrowserMIDlet extends MIDlet implements CommandListener {

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Form form;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdOK;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command cmdEXIT;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private TextField url;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public BrowserMIDlet() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form = new Form("Browser");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdOK = new Command("go", Command.OK, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdEXIT = new Command("exit", Command.EXIT, 1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(cmdOK);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(cmdEXIT);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.setCommandListener(this);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = new TextField("enter url", "http://blog.csdn.net/hunhun1981/", 256, TextField.ANY);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(url);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(Command c, Displayable d) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (d.equals(form)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.equals(cmdOK)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (url.size() &amp;gt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (platformRequest(url.getString())) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyDestroyed();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(e.toString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (c.equals(cmdEXIT)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifyDestroyed();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void destroyApp(boolean arg0) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void pauseApp() {

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void startApp() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(this).setCurrent(form);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:880102ca-29d5-406c-a8e6-0bd03d5826e5]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:504bf971-00cd-4538-8d7a-9b483982ec37] --&gt;</description>
      <pubDate>Thu, 24 Jan 2008 01:33:43 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43120</guid>
      <dc:date>2008-01-24T01:33:43Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>索爱SDK   SPOTxdePlayerDLL的问题？</title>
      <link>http://developer.sonyericsson.com/community/thread/45359</link>
      <description>&lt;!-- [DocumentBodyStart:061121e8-a962-497f-9df5-2737a436e43b] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;完全安装 索尼爱立信的semc_java_me_cldc_sdk.2-5-0-2.exe 包后，在F盘会出现 4个&amp;nbsp; 微软的 runtime library 文件(mfc70.dll)。我将其删除后。重启系统 会提示重新安装SPOTxdePlayerDLL.msi 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;于是我再安装。结果又出现 在F盘会出现 4个&amp;nbsp; 微软的 runtime library 文件(mfc70.dll)。我将其删除后。重启系统 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;又会提示重新安装SPOTxdePlayerDLL.msi 。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; 请问大家遇见过没有，怎么解决的？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:061121e8-a962-497f-9df5-2737a436e43b] --&gt;</description>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">spotxdeplayerdll</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">sdk</category>
      <category domain="http://developer.sonyericsson.com/community/tags?containerType=?14&amp;container=2023">cldc</category>
      <pubDate>Thu, 03 Jul 2008 00:16:49 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/45359</guid>
      <dc:date>2008-07-03T00:16:49Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>关于索爱k800的拍照</title>
      <link>http://developer.sonyericsson.com/community/thread/42689</link>
      <description>&lt;!-- [DocumentBodyStart:1a04124a-b1d8-453e-80ed-52e1ecb8d249] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;初始化的时候当前canvas上始终不能显示player，在moto&amp;nbsp;&amp;nbsp; v8上运行正常，但是在索爱K800上始终没能成功，放在单独线程里也没能成功，请遇到过类似问题的朋友指点一下&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;初始化代码如下： &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;try&amp;nbsp;&amp;nbsp; { &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; player&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; Manager.createPlayer("capture://video"); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; player.realize(); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&amp;nbsp;&amp;nbsp; ((videoControl&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; (VideoControl)&amp;nbsp;&amp;nbsp; player.getControl("VideoControl"))&amp;nbsp;&amp;nbsp; !=&amp;nbsp;&amp;nbsp; null)&amp;nbsp;&amp;nbsp; { &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,&amp;nbsp;&amp;nbsp; getInstance()); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setDisplaySize(playerW,&amp;nbsp;&amp;nbsp; playerH); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setDisplayLocation((SCREEN_WIDTH&amp;nbsp;&amp;nbsp; -&amp;nbsp;&amp;nbsp; playerW)&amp;nbsp;&amp;nbsp; &amp;gt; &amp;gt;&amp;nbsp;&amp;nbsp; 1,&amp;nbsp;&amp;nbsp; startY&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp; 20); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setDisplayFullScreen(false); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoControl.setVisible(true); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; playerStart(); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; catch&amp;nbsp;&amp;nbsp; (Exception&amp;nbsp;&amp;nbsp; e)&amp;nbsp;&amp;nbsp; { &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Logger.debug(e); &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1a04124a-b1d8-453e-80ed-52e1ecb8d249] --&gt;</description>
      <pubDate>Mon, 24 Dec 2007 07:07:57 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42689</guid>
      <dc:date>2007-12-24T07:07:57Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之图片缩放(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43104</link>
      <description>&lt;!-- [DocumentBodyStart:8cae86ea-f78b-49af-b25f-46cd49ec2a95] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;!--[CodeBlockStart:e4d26494-271c-43b5-bd99-5bc4ac27c6e1]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt; public static Image ZoomImage(Image src, int desW, int desH) {
&amp;nbsp; Image desImg = null;
&amp;nbsp; int srcW = src.getWidth(); // 原始图像宽
&amp;nbsp; int srcH = src.getHeight(); // 原始图像高
&amp;nbsp; int[] srcBuf = new int[srcW * srcH]; // 原始图片像素信息缓存

&amp;nbsp; src.getRGB(srcBuf, 0, srcW, 0, 0, srcW, srcH);

&amp;nbsp; // 计算插值表
&amp;nbsp; int[] tabY = new int[desH];
&amp;nbsp; int[] tabX = new int[desW];

&amp;nbsp; int sb = 0;
&amp;nbsp; int db = 0;
&amp;nbsp; int tems = 0;
&amp;nbsp; int temd = 0;
&amp;nbsp; int distance = srcH &amp;gt; desH ? srcH : desH;
&amp;nbsp; for (int i = 0; i &amp;lt;= distance; i++) { /* 垂直方向 */
&amp;nbsp;&amp;nbsp; tabY[db] = sb;
&amp;nbsp;&amp;nbsp; tems += srcH;
&amp;nbsp;&amp;nbsp; temd += desH;
&amp;nbsp;&amp;nbsp; if (tems &amp;gt; distance) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; tems -= distance;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sb++;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; if (temd &amp;gt; distance) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; temd -= distance;
&amp;nbsp;&amp;nbsp;&amp;nbsp; db++;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; sb = 0;
&amp;nbsp; db = 0;
&amp;nbsp; tems = 0;
&amp;nbsp; temd = 0;
&amp;nbsp; distance = srcW &amp;gt; desW ? srcW : desW;
&amp;nbsp; for (int i = 0; i &amp;lt;= distance; i++) { /* 水平方向 */
&amp;nbsp;&amp;nbsp; tabX[db] = (short) sb;
&amp;nbsp;&amp;nbsp; tems += srcW;
&amp;nbsp;&amp;nbsp; temd += desW;
&amp;nbsp;&amp;nbsp; if (tems &amp;gt; distance) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; tems -= distance;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sb++;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; if (temd &amp;gt; distance) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; temd -= distance;
&amp;nbsp;&amp;nbsp;&amp;nbsp; db++;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }

&amp;nbsp; // 生成放大缩小后图形像素buf
&amp;nbsp; int[] desBuf = new int[desW * desH];
&amp;nbsp; int dx = 0;
&amp;nbsp; int dy = 0;
&amp;nbsp; int sy = 0;
&amp;nbsp; int oldy = -1;
&amp;nbsp; for (int i = 0; i &amp;lt; desH; i++) {
&amp;nbsp;&amp;nbsp; if (oldy == tabY+) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; System.arraycopy(desBuf, dy - desW, desBuf, dy, desW);
&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp; dx = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; desW; j++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; desBuf[dy + dx] = srcBuf[sy + tabX[j]];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dx++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; sy += (tabY+ - oldy) * srcW;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; oldy = tabY+;
&amp;nbsp;&amp;nbsp; dy += desW;
&amp;nbsp; }

&amp;nbsp; // 生成图片
&amp;nbsp; desImg = Image.createRGBImage(desBuf, desW, desH, false);
&amp;nbsp; return desImg;
 }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:e4d26494-271c-43b5-bd99-5bc4ac27c6e1]--&gt;&lt;p&gt;这个函数是我以前在网上搜罗到的，且不谈效果，性能什么的。只觉得它非常好用。&lt;/p&gt;&lt;p&gt;用了很长时间，可惜不知道是谁。真要谢谢这位作者了。&lt;/p&gt;&lt;p&gt;这个函数使用了midp2.0的getRGB()函数，效率不错，基本上没什么可优化的了。&lt;/p&gt;&lt;p&gt;此外，下面再提供一个midp1.0下可用的缩放函数，它是使用可变图片实现的。可惜这个函数也不是我写的。&lt;/p&gt;&lt;p&gt;转载于kobjects。不过性能确实比较差，毕竟要画那么多点嘛，跟处理图片数据的方法是没有可比性的。&lt;/p&gt;&lt;!--[CodeBlockStart:b52fbf2b-a11b-4469-b190-132ada0dc62e]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;1 /* Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany
&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp; *
&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp; * Permission is hereby granted, free of charge, to any person obtaining a copy
&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp; * of this software and associated documentation files (the “Software”), to deal
&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp; * in the Software without restriction, including without limitation the rights
&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp; * to use, copy, modify, merge, publish, distribute, sublicense, and/or
&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp; * sell copies of the Software, and to permit persons to whom the Software is
&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp; * furnished to do so, subject to the following conditions:
&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp; *
&amp;nbsp;&amp;nbsp; 10&amp;nbsp; * The&amp;nbsp; above copyright notice and this permission notice shall be included in
&amp;nbsp;&amp;nbsp; 11&amp;nbsp; * all copies or substantial portions of the Software.
&amp;nbsp;&amp;nbsp; 12&amp;nbsp; *
&amp;nbsp;&amp;nbsp; 13&amp;nbsp; * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
&amp;nbsp;&amp;nbsp; 14&amp;nbsp; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
&amp;nbsp;&amp;nbsp; 15&amp;nbsp; * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
&amp;nbsp;&amp;nbsp; 16&amp;nbsp; * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
&amp;nbsp;&amp;nbsp; 17&amp;nbsp; * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
&amp;nbsp;&amp;nbsp; 18&amp;nbsp; * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
&amp;nbsp;&amp;nbsp; 19&amp;nbsp; * IN THE SOFTWARE. */
&amp;nbsp;&amp;nbsp; 20
&amp;nbsp;&amp;nbsp; 21 package org.kobjects.lcdui;
&amp;nbsp;&amp;nbsp; 22
&amp;nbsp;&amp;nbsp; 23
&amp;nbsp;&amp;nbsp; 24 import javax.microedition.lcdui.*;
&amp;nbsp;&amp;nbsp; 25
&amp;nbsp;&amp;nbsp; 26
&amp;nbsp;&amp;nbsp; 27 /** This class provides a single static method that allows to scale an image */
&amp;nbsp;&amp;nbsp; 28
&amp;nbsp;&amp;nbsp; 29
&amp;nbsp;&amp;nbsp; 30 public class ScaleImage {
&amp;nbsp;&amp;nbsp; 31
&amp;nbsp;&amp;nbsp; 32 /**
&amp;nbsp;&amp;nbsp; 33&amp;nbsp; * Creates a new, scaled version of the given image.
&amp;nbsp;&amp;nbsp; 34&amp;nbsp; *
&amp;nbsp;&amp;nbsp; 35&amp;nbsp; * @param src: The source image
&amp;nbsp;&amp;nbsp; 36&amp;nbsp; * @param dstW: The destination (scaled) image width
&amp;nbsp;&amp;nbsp; 37&amp;nbsp; * @param dstH: The destination (scaled) image height
&amp;nbsp;&amp;nbsp; 38&amp;nbsp; * @return Image: A new Image object with the given width and height.
&amp;nbsp;&amp;nbsp; 39&amp;nbsp; */
&amp;nbsp;&amp;nbsp; 40
&amp;nbsp;&amp;nbsp; 41&amp;nbsp; public static Image scaleImage (Image src, int dstW, int dstH) {
&amp;nbsp;&amp;nbsp; 42&amp;nbsp;&amp;nbsp; int srcW = src.getWidth();
&amp;nbsp;&amp;nbsp; 43&amp;nbsp;&amp;nbsp; int srcH = src.getHeight();
&amp;nbsp;&amp;nbsp; 44
&amp;nbsp;&amp;nbsp; 45&amp;nbsp;&amp;nbsp; Image tmp = Image.createImage(dstW, srcH);
&amp;nbsp;&amp;nbsp; 46&amp;nbsp;&amp;nbsp; Graphics g = tmp.getGraphics();
&amp;nbsp;&amp;nbsp; 47
&amp;nbsp;&amp;nbsp; 48&amp;nbsp;&amp;nbsp; int delta = (srcW &amp;lt;&amp;lt; 16) / dstW;
&amp;nbsp;&amp;nbsp; 49&amp;nbsp;&amp;nbsp; int pos = delta/2;
&amp;nbsp;&amp;nbsp; 50
&amp;nbsp;&amp;nbsp; 51&amp;nbsp;&amp;nbsp; for (int x = 0; x &amp;lt; dstW; x++) {
&amp;nbsp;&amp;nbsp; 52&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setClip(x, 0, 1, srcH);
&amp;nbsp;&amp;nbsp; 53&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawImage(src, x - (pos &amp;gt;&amp;gt; 16), 0, Graphics.LEFT | Graphics.TOP);
&amp;nbsp;&amp;nbsp; 54&amp;nbsp;&amp;nbsp;&amp;nbsp; pos += delta;
&amp;nbsp;&amp;nbsp; 55&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 56
&amp;nbsp;&amp;nbsp; 57&amp;nbsp;&amp;nbsp; Image dst = Image.createImage(dstW, dstH);
&amp;nbsp;&amp;nbsp; 58&amp;nbsp;&amp;nbsp; g = dst.getGraphics();
&amp;nbsp;&amp;nbsp; 59
&amp;nbsp;&amp;nbsp; 60&amp;nbsp;&amp;nbsp; delta = (srcH &amp;lt;&amp;lt; 16) / dstH;
&amp;nbsp;&amp;nbsp; 61&amp;nbsp;&amp;nbsp; pos = delta/2;
&amp;nbsp;&amp;nbsp; 62
&amp;nbsp;&amp;nbsp; 63&amp;nbsp;&amp;nbsp; for (int y = 0; y &amp;lt; dstH; y++) {
&amp;nbsp;&amp;nbsp; 64&amp;nbsp;&amp;nbsp;&amp;nbsp; g.setClip(0, y, dstW, 1);
&amp;nbsp;&amp;nbsp; 65&amp;nbsp;&amp;nbsp;&amp;nbsp; g.drawImage(tmp, 0, y - (pos &amp;gt;&amp;gt; 16), Graphics.LEFT | Graphics.TOP);
&amp;nbsp;&amp;nbsp; 66&amp;nbsp;&amp;nbsp;&amp;nbsp; pos += delta;
&amp;nbsp;&amp;nbsp; 67&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 68
&amp;nbsp;&amp;nbsp; 69&amp;nbsp;&amp;nbsp; return dst;
&amp;nbsp;&amp;nbsp; 70&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 71
&amp;nbsp;&amp;nbsp; 72
&amp;nbsp;&amp;nbsp; 73 }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:b52fbf2b-a11b-4469-b190-132ada0dc62e]--&gt;&lt;p&gt;它们的使用方法都是一目了然，提供原始图片对象以及目标宽度跟高度，它就生成新的图片，在成像效果上，感觉都差不多，我觉得第一个方法更好。&lt;/p&gt;&lt;p&gt;在J2ME平台下，也没有必要去最求效果的极致，够用就好。再次感谢以上两个函数的作者。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8cae86ea-f78b-49af-b25f-46cd49ec2a95] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:44:13 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43104</guid>
      <dc:date>2008-01-23T06:44:13Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>手机里的Java属于JavaSE，JavaEE，JavaME的哪一种？</title>
      <link>http://developer.sonyericsson.com/community/thread/46964</link>
      <description>&lt;!-- [DocumentBodyStart:53f086b3-155b-41e7-b120-1421d7f3b995] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;他们之间区别是什么啊 ？？&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:53f086b3-155b-41e7-b120-1421d7f3b995] --&gt;</description>
      <pubDate>Tue, 28 Oct 2008 07:49:09 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46964</guid>
      <dc:date>2008-10-28T07:49:09Z</dc:date>
      <clearspace:dateToText>1 year, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>j2me multipart file upload-  Getting Error</title>
      <link>http://developer.sonyericsson.com/community/thread/46901</link>
      <description>&lt;!-- [DocumentBodyStart:f43a1889-4d6f-42d5-8e4d-8d63fe2a91e0] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;amp;lt;code&amp;amp;gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/*****************************************************************************&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; Description: MIDlet class posting a file to a web server using a HttpConnection.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A Gauge is used as progress bar during the upload.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; Created By: Oscar Vivall 2006-10-06&lt;/p&gt;&lt;p&gt; @file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PostFile.java&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; COPYRIGHT All rights reserved Sony Ericsson Mobile Communications AB 2004.&lt;/p&gt;&lt;p&gt; The software is the copyrighted work of Sony Ericsson Mobile Communications AB.&lt;/p&gt;&lt;p&gt; The use of the software is subject to the terms of the end-user license &lt;/p&gt;&lt;p&gt; agreement which accompanies or is included with the software. The software is &lt;/p&gt;&lt;p&gt; provided "as is" and Sony Ericsson specifically disclaim any warranty or &lt;/p&gt;&lt;p&gt; condition whatsoever regarding merchantability or fitness for a specific &lt;/p&gt;&lt;p&gt; purpose, title or non-infringement. No warranty of any kind is made in &lt;/p&gt;&lt;p&gt; relation to the condition, suitability, availability, accuracy, reliability, &lt;/p&gt;&lt;p&gt; merchantability and/or non-infringement of the software provided herein.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; *****************************************************************************/&lt;/p&gt;&lt;p&gt;package com.mpbx;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;import javax.microedition.midlet.*;&lt;/p&gt;&lt;p&gt;import javax.microedition.lcdui.*;&lt;/p&gt;&lt;p&gt;import javax.microedition.io.*;&lt;/p&gt;&lt;p&gt;import java.io.*;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class PostFile extends MIDlet implements Runnable, CommandListener{&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final String FILE = "/image.jpg";&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final String URL = "&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://localhost/post.php&amp;quot;;"&gt;http://localhost/post.php";&lt;/a&gt;&lt;span&gt; // change this to a valit page.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final String CrLf = "\r\n";&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Form form = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Gauge gauge = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command exitCommand;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Command uploadCommand;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public PostFile(){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form = new Form("Upload File");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gauge = new Gauge("Progress:", true, 100, 0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.append(gauge);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exitCommand = new Command("Exit", Command.EXIT, 0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uploadCommand = new Command("Upload", Command.SCREEN, 0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(exitCommand);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.addCommand(uploadCommand);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; form.setCommandListener(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void startApp() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Display.getDisplay(this).setCurrent(form);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void pauseApp() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void destroyApp(boolean unconditional) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void progress(int total, int current){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int percent = (int) (100 * ((float)current/(float)total));&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gauge.setValue(percent);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void run() {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpConn();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void httpConn(){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpConnection conn = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutputStream os = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream is = null;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("url:" + URL);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn = (HttpConnection)Connector.open(URL);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestMethod(HttpConnection.POST);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String postData = "";&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream imgIs = getClass().getResourceAsStream(FILE);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte []imgData = new byte[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://imgIs.available()|http://imgIs.available"&gt;http://imgIs.available()|http://imgIs.available&lt;/a&gt;&lt;span&gt;()];&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imgIs.read(imgData);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String message1 = "";&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message1 += "----&lt;/p&gt;&lt;hr originalText="------------------------"/&gt;&lt;p&gt;4664151417711" + CrLf;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message1 += "Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"" + FILE + "\"" + CrLf;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message1 += "Content-Type: image/jpeg" + CrLf;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message1 += CrLf;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the image is sent between the messages ni the multipart message.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String message2 = "";&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message2 += CrLf + "--&lt;del&gt;&lt;hr originalText="------------------------"/&gt;4664151417711&lt;/del&gt;" + CrLf;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=----&lt;/p&gt;&lt;hr originalText="----------------------"/&gt;&lt;p&gt;4664151417711");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // might not need to specify the content-length when sending chunked data.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // conn.setRequestProperty("Content-Length", String.valueOf((message1.length() + message2.length() + imgData.length)));&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("open os");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os = conn.openOutputStream();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(message1);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.write(message1.getBytes());&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SEND THE IMAGE&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int index = 0;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int size = 1024;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("write:" + index);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((index+size)&amp;amp;gt;imgData.length){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size = imgData.length - index; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.write(imgData, index, size);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index+=size;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; progress(imgData.length, index); // update the progress bar.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(index&amp;amp;lt;imgData.length);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("written:" + index);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(message2);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.write(message2.getBytes());&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.flush();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("open is");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is = conn.openInputStream();&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char buff = 512;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int len;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte []data = new byte[buff];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("READ");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len = is.read(data);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(len &amp;amp;gt; 0){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(new String(data, 0, len));&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }while(len&amp;amp;gt;0);&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("DONE");&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }finally{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Close connection");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.close();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.close();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e){}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void commandAction(javax.microedition.lcdui.Command command, javax.microedition.lcdui.Displayable displayable) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(command == exitCommand){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.notifyDestroyed();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else if(command == uploadCommand){&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new Thread(this).start();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;amp;lt;/code&amp;amp;gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When I run this I get the error below...SOmeone please suggest me..&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt; url:&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://localhost/post.php"&gt;http://localhost/post.php&lt;/a&gt;&lt;/p&gt;&lt;p&gt;java.lang.NullPointerException&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.mpbx.PostFile.httpConn(PostFile.java:85)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.mpbx.PostFile.run(PostFile.java:68)&lt;/p&gt;&lt;p&gt;Close connection&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f43a1889-4d6f-42d5-8e4d-8d63fe2a91e0] --&gt;</description>
      <pubDate>Thu, 23 Oct 2008 05:34:37 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46901</guid>
      <dc:date>2008-10-23T05:34:37Z</dc:date>
      <clearspace:dateToText>1 year, 4 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>c702,W760i开发的j2me 高级界面，列表和菜单在C905，705等会出现问题。</title>
      <link>http://developer.sonyericsson.com/community/thread/46924</link>
      <description>&lt;!-- [DocumentBodyStart:ab9a85eb-463c-4803-aa22-e1685eaf9244] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;1 在c702，w760i可以上下一个个按。&lt;/p&gt;&lt;p&gt;现在在c905 是按住不放，列表才会移动。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2 在列表的时候，c905的menu（菜单）会出现重复的选项。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:ab9a85eb-463c-4803-aa22-e1685eaf9244] --&gt;</description>
      <pubDate>Sat, 25 Oct 2008 10:36:15 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46924</guid>
      <dc:date>2008-10-25T10:36:15Z</dc:date>
      <clearspace:dateToText>1 year, 3 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>[中文论坛有奖活动] 如何在Java ME平台上获取手机串号</title>
      <link>http://developer.sonyericsson.com/community/thread/43021</link>
      <description>&lt;!-- [DocumentBodyStart:9c795beb-0291-4f75-ad78-41c8e0d2e662] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;索尼爱立信: System.getProperty("com.sonyericsson.imei");&lt;/p&gt;&lt;p&gt;三星: System.getProperty("com.samsung.imei");&lt;/p&gt;&lt;p&gt;摩托罗拉: System.getProperty("IMEI" );&lt;/p&gt;&lt;p&gt;西门子: System.getProperty("com.siemens.IMEI");&lt;/p&gt;&lt;p&gt;诺基亚: System.getProperty("phone.imei");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.getProperty("com.nokia.IMEI");&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9c795beb-0291-4f75-ad78-41c8e0d2e662] --&gt;</description>
      <pubDate>Fri, 18 Jan 2008 03:33:32 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43021</guid>
      <dc:date>2008-01-18T03:33:32Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>5</clearspace:messageCount>
      <clearspace:replyCount>4</clearspace:replyCount>
    </item>
    <item>
      <title>是不是配置有问题啊？为什么不能运行还报错？</title>
      <link>http://developer.sonyericsson.com/community/thread/44262</link>
      <description>&lt;!-- [DocumentBodyStart:a54457ff-8457-4071-a463-f395825f587d] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我是个新手，按照网上介绍的说明配置了j2me的开发环境，索爱的虚拟器用的是sdk2.5.0.1beta。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;结果运行后报错 ：Proxy could not open new connection to handset.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问是什么问题？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a54457ff-8457-4071-a463-f395825f587d] --&gt;</description>
      <pubDate>Thu, 03 Apr 2008 03:39:04 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/44262</guid>
      <dc:date>2008-04-03T03:39:04Z</dc:date>
      <clearspace:dateToText>1 year, 7 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>w810获取日期的问题，是我的问题还是bug</title>
      <link>http://developer.sonyericsson.com/community/thread/45020</link>
      <description>&lt;!-- [DocumentBodyStart:fa2f18ac-2d7e-4e0b-bf31-709d18d255f5] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;使用alert.setString(Integer.toString(cal.get(Calendar.MONTH))); 获得系统月份，为什么不准呢，现在手机明明显示的是5月，由上面语句获得的时间却是4月，我看过了日期设置没错，谁能告诉我为什么，是我的程序问题还是w810的bug&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:fa2f18ac-2d7e-4e0b-bf31-709d18d255f5] --&gt;</description>
      <pubDate>Fri, 30 May 2008 02:45:11 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/45020</guid>
      <dc:date>2008-05-30T02:45:11Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>請問如何 debug 在 w800 上面(Would I translate into English?)</title>
      <link>http://developer.sonyericsson.com/community/thread/42379</link>
      <description>&lt;!-- [DocumentBodyStart:9e7a2270-c88b-4dbd-8217-2d0c96412ef4] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我寫了一段 access file 程式，並且安裝進去 handset，&lt;/p&gt;&lt;p&gt;也使用了 SDK 中的 debug on device 來 build ，&lt;/p&gt;&lt;p&gt;可是，在我設定 break point 的地方，還是不會停下來，&lt;/p&gt;&lt;p&gt;讓我 debug ，請問我也如何才能 debug ，謝謝&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ps.請問 signed 和 unsigned 的MIDlet 有什麼上的差異，以及 要如何做才能有 signed MIDlet 的服務，很期待你的回答喔。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;消息编辑由: 亨利&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;消息编辑由: 亨利&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;消息编辑由: 亨利&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9e7a2270-c88b-4dbd-8217-2d0c96412ef4] --&gt;</description>
      <pubDate>Wed, 05 Dec 2007 03:36:50 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/42379</guid>
      <dc:date>2007-12-05T03:36:50Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>9</clearspace:messageCount>
      <clearspace:replyCount>8</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之汉字转拼音2(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43108</link>
      <description>&lt;!-- [DocumentBodyStart:38c44b58-83dd-48e4-bef7-a07d48f21040] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;上一篇文章介绍了j2me环境下汉字转换为拼音的方法。&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://blog.csdn.net/hunhun1981/archive/2007/10/27/1846778.aspx"&gt;http://blog.csdn.net/hunhun1981/archive/2007/10/27/1846778.aspx&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;后来又完善了一下，追加了汉字转换为拼音首字母的方法。&lt;/p&gt;&lt;p&gt;来源是网上出现频率比较高的汉字转拼音的java代码。&lt;/p&gt;&lt;p&gt;但是我都做了优化，修正了一些小缺陷，使用数组替代容器，并且将编码转换的步骤省略，直接制作成映射表。而且，查找汉字编码区间的时候使用了类似二分查找的方法。所以速度快了很多很多。&lt;/p&gt;&lt;p&gt;当然，要文字足够多才能看出来。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在nokia5300上进行了测试，300字175毫秒。还算不错吧。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;具体就不多说了。&lt;/p&gt;&lt;p&gt;大家可以直接使用getFirstPY()和getAllPY()方法获得字符串或者单个字符的全拼活着拼音首字母。&lt;/p&gt;&lt;!--[CodeBlockStart:d367da3a-cc85-4776-8a95-4ad20ed4779e]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class HGB2PINYIN {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final int[] FIRST_TABLE = { 45217, 45253, 45761, 46318, 46826,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 47010, 47297, 47614, 47614, 48119, 49062, 49324, 49896, 50371,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50614, 50622, 50906, 51387, 51446, 52218, 52218, 52218, 52698,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52980, 53689, 54481, 55289 };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final String[] ALL_VALUE = { "zuo", "zun", "zui", "zuan", "zu",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zou", "zong", "zi", "zhuo", "zhun", "zhui", "zhuang", "zhuan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zhuai", "zhua", "zhu", "zhou", "zhong", "zhi", "zheng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zhen", "zhe", "zhao", "zhang", "zhan", "zhai", "zha", "zeng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zen", "zei", "ze", "zao", "zang", "zan", "zai", "za", "yun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "yue", "yuan", "yu", "you", "yong", "yo", "ying", "yin", "yi",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ye", "yao", "yang", "yan", "ya", "xun", "xue", "xuan", "xu",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "xiu", "xiong", "xing", "xin", "xie", "xiao", "xiang", "xian",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "xia", "xi", "wu", "wo", "weng", "wen", "wei", "wang", "wan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "wai", "wa", "tuo", "tun", "tui", "tuan", "tu", "tou", "tong",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ting", "tie", "tiao", "tian", "ti", "teng", "te", "tao",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "tang", "tan", "tai", "ta", "suo", "sun", "sui", "suan", "su",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "sou", "song", "si", "shuo", "shun", "shui", "shuang", "shuan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "shuai", "shua", "shu", "shou", "shi", "sheng", "shen", "she",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "shao", "shang", "shan", "shai", "sha", "seng", "sen", "se",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "sao", "sang", "san", "sai", "sa", "ruo", "run", "rui", "ruan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ru", "rou", "rong", "ri", "reng", "ren", "re", "rao", "rang",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ran", "qun", "que", "quan", "qu", "qiu", "qiong", "qing",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "qin", "qie", "qiao", "qiang", "qian", "qia", "qi", "pu", "po",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ping", "pin", "pie", "piao", "pian", "pi", "peng", "pen",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "pei", "pao", "pang", "pan", "pai", "pa", "ou", "o", "nuo",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "nue", "nuan", "nv", "nu", "nong", "niu", "ning", "nin", "nie",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "niao", "niang", "nian", "ni", "neng", "nen", "nei", "ne",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "nao", "nang", "nan", "nai", "na", "mu", "mou", "mo", "miu",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ming", "min", "mie", "miao", "mian", "mi", "meng", "men",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mei", "me", "mao", "mang", "man", "mai", "ma", "luo", "lun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "lue", "luan", "lv", "lu", "lou", "long", "liu", "ling", "lin",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "lie", "liao", "liang", "lian", "lia", "li", "leng", "lei",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "le", "lao", "lang", "lan", "lai", "la", "kuo", "kun", "kui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kuang", "kuan", "kuai", "kua", "ku", "kou", "kong", "keng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ken", "ke", "kao", "kang", "kan", "kai", "ka", "jun", "jue",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "juan", "ju", "jiu", "jiong", "jing", "jin", "jie", "jiao",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "jiang", "jian", "jia", "ji", "huo", "hun", "hui", "huang",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "huan", "huai", "hua", "hu", "hou", "hong", "heng", "hen",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "hei", "he", "hao", "hang", "han", "hai", "ha", "guo", "gun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "gui", "guang", "guan", "guai", "gua", "gu", "gou", "gong",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "geng", "gen", "gei", "ge", "gao", "gang", "gan", "gai", "ga",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "fu", "fou", "fo", "feng", "fen", "fei", "fang", "fan", "fa",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "er", "en", "e", "duo", "dun", "dui", "duan", "du", "dou",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "dong", "diu", "ding", "die", "diao", "dian", "di", "deng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "de", "dao", "dang", "dan", "dai", "da", "cuo", "cun", "cui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cuan", "cu", "cou", "cong", "ci", "chuo", "chun", "chui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "chuang", "chuan", "chuai", "chu", "chou", "chong", "chi",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cheng", "chen", "che", "chao", "chang", "chan", "chai", "cha",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ceng", "ce", "cao", "cang", "can", "cai", "ca", "bu", "bo",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bing", "bin", "bie", "biao", "bian", "bi", "beng", "ben",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bei", "bao", "bang", "ban", "bai", "ba", "ao", "ang", "an",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ai", "a" };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final int[] ALL_CODE = { -10254, -10256, -10260, -10262,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10270, -10274, -10281, -10296, -10307, -10309, -10315, -10322,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10328, -10329, -10331, -10519, -10533, -10544, -10587, -10764,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10780, -10790, -10800, -10815, -10832, -10838, -11014, -11018,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11019, -11020, -11024, -11038, -11041, -11045, -11052, -11055,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11067, -11077, -11097, -11303, -11324, -11339, -11340, -11358,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11536, -11589, -11604, -11781, -11798, -11831, -11847, -11861,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11867, -12039, -12058, -12067, -12074, -12089, -12099, -12120,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12300, -12320, -12346, -12359, -12556, -12585, -12594, -12597,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12607, -12802, -12812, -12829, -12831, -12838, -12849, -12852,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12858, -12860, -12871, -12875, -12888, -13060, -13063, -13068,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13076, -13091, -13095, -13096, -13107, -13120, -13138, -13147,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13318, -13326, -13329, -13340, -13343, -13356, -13359, -13367,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13383, -13387, -13391, -13395, -13398, -13400, -13404, -13406,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13601, -13611, -13658, -13831, -13847, -13859, -13870, -13878,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13894, -13896, -13905, -13906, -13907, -13910, -13914, -13917,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14083, -14087, -14090, -14092, -14094, -14097, -14099, -14109,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14112, -14122, -14123, -14125, -14135, -14137, -14140, -14145,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14149, -14151, -14159, -14170, -14345, -14353, -14355, -14368,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14379, -14384, -14399, -14407, -14429, -14594, -14630, -14645,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14654, -14663, -14668, -14670, -14674, -14678, -14857, -14871,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14873, -14882, -14889, -14894, -14902, -14908, -14914, -14921,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14922, -14926, -14928, -14929, -14930, -14933, -14937, -14941,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15109, -15110, -15117, -15119, -15121, -15128, -15139, -15140,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15141, -15143, -15144, -15149, -15150, -15153, -15158, -15165,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15180, -15183, -15362, -15363, -15369, -15375, -15377, -15385,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15394, -15408, -15416, -15419, -15435, -15436, -15448, -15454,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15625, -15631, -15640, -15652, -15659, -15661, -15667, -15681,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15701, -15707, -15878, -15889, -15903, -15915, -15920, -15933,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15944, -15958, -15959, -16155, -16158, -16169, -16171, -16180,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16187, -16202, -16205, -16212, -16216, -16220, -16393, -16401,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16403, -16407, -16412, -16419, -16423, -16427, -16429, -16433,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16448, -16452, -16459, -16465, -16470, -16474, -16647, -16657,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16664, -16689, -16706, -16708, -16733, -16915, -16942, -16970,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16983, -17185, -17202, -17417, -17427, -17433, -17454, -17468,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17482, -17487, -17496, -17676, -17683, -17692, -17697, -17701,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17703, -17721, -17730, -17733, -17752, -17759, -17922, -17928,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17931, -17947, -17950, -17961, -17964, -17970, -17988, -17997,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18012, -18181, -18183, -18184, -18201, -18211, -18220, -18231,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18237, -18239, -18446, -18447, -18448, -18463, -18478, -18490,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18501, -18518, -18526, -18696, -18697, -18710, -18722, -18731,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18735, -18741, -18756, -18763, -18773, -18774, -18783, -18952,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18961, -18977, -18996, -19003, -19006, -19018, -19023, -19038,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19212, -19218, -19224, -19227, -19235, -19238, -19242, -19243,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19249, -19261, -19263, -19270, -19275, -19281, -19288, -19289,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19467, -19479, -19484, -19500, -19515, -19525, -19531, -19540,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19715, -19725, -19728, -19739, -19741, -19746, -19751, -19756,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19763, -19774, -19775, -19784, -19805, -19976, -19982, -19986,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19990, -20002, -20026, -20032, -20036, -20051, -20230, -20242,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -20257, -20265, -20283, -20292, -20295, -20304, -20317, -20319 };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getAllPY(String gb2312) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (null == gb2312 || "".equals(gb2312.trim())) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gb2312;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] chars = gb2312.toCharArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer retuBuf = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0, Len = chars.length; i &amp;lt; Len; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retuBuf.append(getAllPY(chars+));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end of for
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retuBuf.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getAllPY(char gb2312) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ascii = getCnAscii(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii == 0) { // 取ascii时出错
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.valueOf(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String spell = getSpellByAscii(ascii);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (spell == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.valueOf(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return spell;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end of if spell == null
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public char getFirstPY(char ch) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch &amp;gt;= 0 &amp;amp;&amp;amp; ch &amp;lt;= 0x7F) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int gb = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = String.valueOf(ch).getBytes("GB2312");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes.length &amp;lt; 2) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gb = byte2Int(bytes[0]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gb = (bytes[0] &amp;lt;&amp;lt; 8 &amp;amp; 0xff00) + (bytes[1] &amp;amp; 0xff);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (gb &amp;lt; FIRST_TABLE[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 26; ++i) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (match(i, gb))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i &amp;gt;= 26)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (char) (65 + i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getFirstPY(String src) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer sb = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int len = src.length();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; len; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append(getFirstPY(src.charAt(i)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sb.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int getCnAscii(char cn) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bytes = (String.valueOf(cn)).getBytes("GB2312");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes == null || bytes.length &amp;gt; 2 || bytes.length &amp;lt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes.length == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int hightByte = 256 + bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int lowByte = 256 + bytes[1];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ascii = (256 * hightByte + lowByte) - 256 * 256;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ascii;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String getSpellByAscii(int ascii) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii &amp;gt; 0 &amp;amp;&amp;amp; ascii &amp;lt; 160) { // 单字符
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.valueOf((char) ascii);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii &amp;lt; -20319 || ascii &amp;gt; -10247) { // 不知道的字符
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int first = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sLast = ALL_CODE.length - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int last = ALL_CODE.length - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int mid;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int temp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (true) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mid = (first + last) &amp;gt;&amp;gt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii == ALL_CODE[mid]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ALL_VALUE[mid];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (ascii &amp;gt; ALL_CODE[mid]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = mid - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (temp &amp;gt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii &amp;lt; ALL_CODE[temp]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ALL_VALUE[mid];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last = mid;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ALL_VALUE[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (mid + 1 &amp;lt;= sLast) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; first = mid + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ALL_VALUE[sLast];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private boolean match(int i, int gb) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (gb &amp;lt; FIRST_TABLE+) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int j = i + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 字母Z使用了两个标签
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (j &amp;lt; 26 &amp;amp;&amp;amp; (FIRST_TABLE[j] == FIRST_TABLE+)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++j;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (j == 26)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gb &amp;lt;= FIRST_TABLE[j];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gb &amp;lt; FIRST_TABLE[j];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int byte2Int(byte b) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b &amp;lt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 256 + b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:d367da3a-cc85-4776-8a95-4ad20ed4779e]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:38c44b58-83dd-48e4-bef7-a07d48f21040] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:55:12 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43108</guid>
      <dc:date>2008-01-23T06:55:12Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>签名软件在p990i上无法安装，在其他索爱机器上可以安装</title>
      <link>http://developer.sonyericsson.com/community/thread/45231</link>
      <description>&lt;!-- [DocumentBodyStart:9ea8f0ef-9eb3-492d-843c-76c563004c5f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;是记忆宝背单词0.8.0版，签名认证使用的是Thawte证书，在其他索尼爱立信手机上安装正常，在p990i上无法安装，显示如下信息：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Component failed security check cannot install &lt;/p&gt;&lt;p&gt;Authentication failed &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;软件可以在这里下载：[&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://jiyibao.com/java/080/MemoDict080_Sign.rar"&gt;http://jiyibao.com/java/080/MemoDict080_Sign.rar&lt;/a&gt;&lt;span&gt;]&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;问一下可能是什么原因？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:9ea8f0ef-9eb3-492d-843c-76c563004c5f] --&gt;</description>
      <pubDate>Wed, 18 Jun 2008 05:20:19 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/45231</guid>
      <dc:date>2008-06-18T05:20:19Z</dc:date>
      <clearspace:dateToText>1 year, 3 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>请教一下W880等手机如何判断彩信完整性？</title>
      <link>http://developer.sonyericsson.com/community/thread/47831</link>
      <description>&lt;!-- [DocumentBodyStart:4d550b33-71b5-4172-afd3-e1eb15ce099d] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问一下几个问题：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(1):怎么样判断彩信完整性？ 例如附件的完整？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(2):怎么样判断短信的完整性？ &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(3):如何得到发送者的号码？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;谢谢 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4d550b33-71b5-4172-afd3-e1eb15ce099d] --&gt;</description>
      <pubDate>Fri, 09 Jan 2009 09:09:03 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47831</guid>
      <dc:date>2009-01-09T09:09:03Z</dc:date>
      <clearspace:dateToText>10 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>求java me开发平台下载！~~~~~</title>
      <link>http://developer.sonyericsson.com/community/thread/47161</link>
      <description>&lt;!-- [DocumentBodyStart:dc5d44e1-7e71-4f4d-9bf2-cb5fa9c096f3] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我想下载个用于移动设备和嵌入式设备java me ！多谢各位帮忙！！！&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:dc5d44e1-7e71-4f4d-9bf2-cb5fa9c096f3] --&gt;</description>
      <pubDate>Thu, 27 Nov 2008 06:08:35 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/47161</guid>
      <dc:date>2008-11-27T06:08:35Z</dc:date>
      <clearspace:dateToText>11 months, 4 weeks ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>请问J2ME如何实现任务管理器</title>
      <link>http://developer.sonyericsson.com/community/thread/46873</link>
      <description>&lt;!-- [DocumentBodyStart:51db65c8-4cfd-4558-8635-9bc15c1c467a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我想问一下索爱非智能机的任务管理器是怎么实现的？ 有没有代码提供呢？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我想实现一个任务管理器来监控GRPS连接和发短信的程序，能否指点一下？谢谢。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:51db65c8-4cfd-4558-8635-9bc15c1c467a] --&gt;</description>
      <pubDate>Wed, 22 Oct 2008 02:33:00 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46873</guid>
      <dc:date>2008-10-22T02:33:00Z</dc:date>
      <clearspace:dateToText>12 months, 1 day ago</clearspace:dateToText>
      <clearspace:messageCount>4</clearspace:messageCount>
      <clearspace:replyCount>3</clearspace:replyCount>
    </item>
    <item>
      <title>K660i无法用cmwap方式联网？</title>
      <link>http://developer.sonyericsson.com/community/thread/43094</link>
      <description>&lt;!-- [DocumentBodyStart:a570c32e-1a27-4e47-bfd3-64ceb8274075] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;手头有一部K660i，怎么也无法用cmwap方式联网。那位知道该如何解决？（代码确定没有问题，nokia N72和索爱M608C都测试通过，可以联网。）&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:a570c32e-1a27-4e47-bfd3-64ceb8274075] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 09:32:07 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43094</guid>
      <dc:date>2008-01-23T09:32:07Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>8</clearspace:messageCount>
      <clearspace:replyCount>7</clearspace:replyCount>
    </item>
    <item>
      <title>W958c上用MMAPI播放视频，只有声音没有图像，该如何解决？</title>
      <link>http://developer.sonyericsson.com/community/thread/45467</link>
      <description>&lt;!-- [DocumentBodyStart:66f50117-6f42-406c-9b5e-c7e6f2413dcb] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在W958c上用MMAPI播放视频，只有声音没有图像，也不抛异常，但在其他非UIQ机型上比如k790等就可以正常播放，该如何解决？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:66f50117-6f42-406c-9b5e-c7e6f2413dcb] --&gt;</description>
      <pubDate>Fri, 11 Jul 2008 06:48:21 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/45467</guid>
      <dc:date>2008-07-11T06:48:21Z</dc:date>
      <clearspace:dateToText>1 year, 4 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>[求助] 在SonyEricsson P1c 上用j2me无法播放mpg、3gp文件！！</title>
      <link>http://developer.sonyericsson.com/community/thread/46261</link>
      <description>&lt;!-- [DocumentBodyStart:28982e9f-5869-4b18-9171-09abe18446ec] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;本人做了一个j2me播放视频的简单程序，在WTK上播放没问题，但放到真机上（我用的是SonyEricsson P1c 和 z770i）就是不行&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;P1c 上：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1、VideoControl.USE_DIRECT_VIDEO模式下：什么都没有显示，错误都没显示&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2、VideoControl.USE_GUI_PRIMITIVE模式下：显示错误 "SymbianOS&amp;nbsp; error = -5 handleBlockingOperation"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;z770i上：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;两种模式都是什么都不显示&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;求各位大侠帮帮我，谢谢了！&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面是源码：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;MMTest.java&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class MMTest extends MIDlet {&lt;/p&gt;&lt;p&gt; private Display display;&lt;/p&gt;&lt;p&gt; PCanvas p;&lt;/p&gt;&lt;p&gt; PlayerForm f;&lt;/p&gt;&lt;p&gt; public MMTest() {&lt;/p&gt;&lt;p&gt;&amp;nbsp; display&amp;nbsp; = Display.getDisplay(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp; p=new PCanvas(display);&lt;/p&gt;&lt;p&gt;//&amp;nbsp; f=new PlayerForm(display);&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; protected void destroyApp(boolean arg0) throws MIDletStateChangeException {&lt;/p&gt;&lt;p&gt;&amp;nbsp; // TODO 自动生成方法存根&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; protected void pauseApp() {&lt;/p&gt;&lt;p&gt;&amp;nbsp; // TODO 自动生成方法存根&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; protected void startApp() throws MIDletStateChangeException {&lt;/p&gt;&lt;p&gt;&amp;nbsp; p.start();&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; PCanvas.java&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;public class PCanvas extends Canvas {&lt;/p&gt;&lt;p&gt; private Player player = null;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; private VideoControl vidc;&lt;/p&gt;&lt;p&gt; private Display display;&lt;/p&gt;&lt;p&gt; Alert aa;&lt;/p&gt;&lt;p&gt; public PCanvas(Display d){&lt;/p&gt;&lt;p&gt;&amp;nbsp; display=d;&lt;/p&gt;&lt;p&gt;&amp;nbsp; try {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; InputStream ins = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; ins=getClass().getResourceAsStream("/2.mpg");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; player = Manager.createPlayer(ins, "video/mpeg");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; if (player != null) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.setFullScreenMode(true);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; player.realize();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc = (VideoControl) player.getControl("VideoControl");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (vidc != null) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setVisible(true);// 设置可见&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setDisplayLocation(0, 0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setDisplaySize(100, 100);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; display.setCurrent(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp; } catch (Exception e) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa=new Alert("title","1:"+e.getMessage(),null,AlertType.INFO);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa.setTimeout(Alert.FOREVER);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; display.setCurrent(aa);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p&gt; protected void paint(Graphics arg0) {&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; public void start(){&lt;/p&gt;&lt;p&gt;&amp;nbsp; try {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; player.start();&lt;/p&gt;&lt;p&gt;&amp;nbsp; } catch (MediaException e) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa=new Alert("title","2:"+e.getMessage(),null,AlertType.INFO);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa.setTimeout(Alert.FOREVER);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; display.setCurrent(aa);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;PlayerForm.java&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; public class PlayerForm extends Form {&lt;/p&gt;&lt;p&gt; private Player player = null;&lt;/p&gt;&lt;p&gt; private Display display;&lt;/p&gt;&lt;p&gt; Alert aa;&lt;/p&gt;&lt;p&gt;&amp;nbsp; private Item videoItem;&lt;/p&gt;&lt;p&gt; private VideoControl vidc;&lt;/p&gt;&lt;p&gt; public PlayerForm(Display d){&lt;/p&gt;&lt;p&gt;&amp;nbsp; super("test");&lt;/p&gt;&lt;p&gt;&amp;nbsp; display=d;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; try {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; InputStream ins = null;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; ins=getClass().getResourceAsStream("/2.mpg");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; player = Manager.createPlayer(ins, "video/mpeg");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; if (player != null) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; player.realize();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc = (VideoControl) player.getControl("VideoControl");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (vidc != null) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoItem = (Item)vidc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setVisible(true);// 设置可见&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setDisplayLocation(0, 0);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vidc.setDisplaySize(100, 100);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; append(videoItem);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; display.setCurrent(this);&lt;/p&gt;&lt;p&gt;&amp;nbsp; } catch (Exception e) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa=new Alert("title","1:"+e.getMessage(),null,AlertType.INFO);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa.setTimeout(Alert.FOREVER);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; display.setCurrent(aa);&lt;/p&gt;&lt;p&gt;&amp;nbsp; } &lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; public void start(){&lt;/p&gt;&lt;p&gt;&amp;nbsp; try {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; player.start();&lt;/p&gt;&lt;p&gt;&amp;nbsp; } catch (MediaException e) {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa=new Alert("title","2:"+e.getMessage(),null,AlertType.INFO);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; aa.setTimeout(Alert.FOREVER);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; display.setCurrent(aa);&lt;/p&gt;&lt;p&gt;&amp;nbsp; }&lt;/p&gt;&lt;p&gt; }&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:28982e9f-5869-4b18-9171-09abe18446ec] --&gt;</description>
      <pubDate>Thu, 11 Sep 2008 02:46:35 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46261</guid>
      <dc:date>2008-09-11T02:46:35Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>分辨率和屏幕色</title>
      <link>http://developer.sonyericsson.com/community/thread/43052</link>
      <description>&lt;!-- [DocumentBodyStart:62c48af0-c152-4b41-927c-3f80bace56ea] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;为什么索爱还在保持240*320和26万色呢,&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:62c48af0-c152-4b41-927c-3f80bace56ea] --&gt;</description>
      <pubDate>Tue, 22 Jan 2008 04:16:03 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43052</guid>
      <dc:date>2008-01-22T04:16:03Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>如何得到SE机器中的已使用的LAM</title>
      <link>http://developer.sonyericsson.com/community/thread/44222</link>
      <description>&lt;!-- [DocumentBodyStart:0b0aa351-3d5e-4441-b9b0-b4028215979e] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;大家好，大家都知道现在SE机器上有一段所谓的LAM,SE的资料中是这样写的。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－ &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Java applications use two kinds of heap memory, plain Java heap and &lt;strong&gt;LAM&lt;/strong&gt; (Large Array Memory). The&lt;/p&gt;&lt;p&gt;LAM is shared with other processes on the phone. Standard Java objects and vectors of Java objects are&lt;/p&gt;&lt;p&gt;always located on the Java heap. Arrays of primitive types (byte[] int[], float[]) however may be&lt;/p&gt;&lt;p&gt;put in the LAM if the plain Java heap is low on memory. Small arrays have a greater chance of ending up&lt;/p&gt;&lt;p&gt;in the plain Java heap, while large arrays more often are stored in the LAM. Images are also sometimes&lt;/p&gt;&lt;p&gt;placed in LAM.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;现在我有一个问题，如果我创建了一个图片，我如何知道我消耗了多少的LAM呢？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0b0aa351-3d5e-4441-b9b0-b4028215979e] --&gt;</description>
      <pubDate>Tue, 01 Apr 2008 02:10:12 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/44222</guid>
      <dc:date>2008-04-01T02:10:12Z</dc:date>
      <clearspace:dateToText>1 year, 7 months ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>关于Nokia UI API 1.1全屏问题</title>
      <link>http://developer.sonyericsson.com/community/thread/46434</link>
      <description>&lt;!-- [DocumentBodyStart:c75a2d3b-1d52-43ae-839d-d1980f6a2b42] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;程序刚进入是全屏的,中间为了省事,要借助高级API与用户交互,结果交互完返回主屏幕,主屏幕不是全屏了,又出现了顶部的电量信号和底部没按钮的一个状态栏,请好心人帮忙解释一下,可不可以解决?谢谢&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c75a2d3b-1d52-43ae-839d-d1980f6a2b42] --&gt;</description>
      <pubDate>Wed, 24 Sep 2008 07:57:07 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/46434</guid>
      <dc:date>2008-09-24T07:57:07Z</dc:date>
      <clearspace:dateToText>1 year, 1 month ago</clearspace:dateToText>
      <clearspace:messageCount>3</clearspace:messageCount>
      <clearspace:replyCount>2</clearspace:replyCount>
    </item>
    <item>
      <title>AGPS 問題</title>
      <link>http://developer.sonyericsson.com/community/thread/48410</link>
      <description>&lt;!-- [DocumentBodyStart:374f0a73-3300-4e3c-8870-2cfae57ea4a6] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hi all,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我使用的手機內建AGPS，當我用Location API 嘗試讀取位置資訊時，每次都會timeout，從沒成功過。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;但手機上的Google Map 卻自己可以很順利地讀取到相關位置資訊，&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;這不禁讓我懷疑是否不能用Location API 去讀取AGPS 的資訊，而必須用其他的API？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; 或者是我忽略了什麼AGPS 該做的設定呢？&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:374f0a73-3300-4e3c-8870-2cfae57ea4a6] --&gt;</description>
      <pubDate>Wed, 18 Feb 2009 13:13:17 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/48410</guid>
      <dc:date>2009-02-18T13:13:17Z</dc:date>
      <clearspace:dateToText>9 months, 1 day ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>W958键值</title>
      <link>http://developer.sonyericsson.com/community/thread/43439</link>
      <description>&lt;!-- [DocumentBodyStart:5b81afd3-fd29-4d17-a01e-e564c17092b8] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;请问这个机器的上下左右键和左右软键的键值是多少，急用，谢谢&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5b81afd3-fd29-4d17-a01e-e564c17092b8] --&gt;</description>
      <pubDate>Wed, 13 Feb 2008 07:39:33 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43439</guid>
      <dc:date>2008-02-13T07:39:33Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之GB2312转换类Unicode方式(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43106</link>
      <description>&lt;!-- [DocumentBodyStart:c66e24f1-212f-4f4e-9a5e-cbabf62b6f09] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;之前的文章介绍了在j2me环境下GB2312转换为UTF-8的方法。&lt;/p&gt;&lt;p&gt;后来继续对编码及char类型进行学习，发现一些有趣的问题。&lt;/p&gt;&lt;p&gt;首先java环境下的char类型变量，实际上就是以unicode方式存储的。&lt;/p&gt;&lt;p&gt;所以以下方法有效：&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; 输入unicode编码的byte数组，即可两两拼接成一个char。&lt;/p&gt;&lt;p&gt;而String类型实际上就是在char数组的基础上衍生出来的。大家可以参考cldc的源代码。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:119ce887-e13f-4ce8-8d25-d52ce52412f5]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public static String read_Uni(byte[] word_unicode) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer stringbuffer = new StringBuffer("");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; word_unicode.length;) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int l = word_unicode[j++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int h = word_unicode[j++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char c = (char) ((l &amp;amp; 0xff) | ((h &amp;lt;&amp;lt; 8) &amp;amp; 0xff00));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stringbuffer.append(c);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return stringbuffer.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:119ce887-e13f-4ce8-8d25-d52ce52412f5]--&gt;&lt;p&gt;j2me环境下也是如此。&lt;/p&gt;&lt;p&gt;所以在第一次给出的转换类中，提供的gb2312到utf-8直接转换的快速方法。现在看来是画蛇添足了。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;根据以上经验，更新转换类如下：&lt;/p&gt;&lt;!--[CodeBlockStart:7a065514-d21d-4281-a066-ec2d536030ac]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class HGB2312 {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private byte[] map = new byte[15228];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public HGB2312() throws Exception {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream is = getClass().getResourceAsStream("/gb2u.dat");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.read(map);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String gb2utf8(byte[] gb) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer sb = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c, h, l, ind;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; gb.length;) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (gb+ &amp;gt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append((char) gb[i++]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = 256 + gb[i++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = 256 + gb[i++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = h - 0xA0 - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = l - 0xA0 - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (h &amp;lt; 9) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = (h * 94 + l) &amp;lt;&amp;lt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = (byte2Int(map[ind]) &amp;lt;&amp;lt; 8 | byte2Int(map[ind + 1]));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append((char) c);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (h &amp;gt;= 9 &amp;amp;&amp;amp; h &amp;lt;= 14) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append((char) 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (h &amp;gt; 14) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h -= 6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = (h * 94 + l) &amp;lt;&amp;lt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = (byte2Int(map[ind]) &amp;lt;&amp;lt; 8 | byte2Int(map[ind + 1]));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append((char) c);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sb.append((char) 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sb.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int byte2Int(byte b) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b &amp;lt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 256 + b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:7a065514-d21d-4281-a066-ec2d536030ac]--&gt;&lt;p&gt;这个方法明显要比第一次快很多了，直接查表，然后拼接成String，不需要转换成utf-8编码。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;数据文件请在&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://download.csdn.net/source/263609获取"&gt;http://download.csdn.net/source/263609获取&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;总之，java中的char类型实际上是存储了unicode编码。目前在nokia 5300上测试通过。&lt;/p&gt;&lt;p&gt;我觉得其它机器也应该是这样。如果哪位大侠知道这方面的资料，请赐教。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c66e24f1-212f-4f4e-9a5e-cbabf62b6f09] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:51:00 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43106</guid>
      <dc:date>2008-01-23T06:51:00Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>J2ME经验总结之GB2312转换为UTF-8(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43105</link>
      <description>&lt;!-- [DocumentBodyStart:60b84038-e600-439d-89be-e9b17d8eef60] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;摩托罗拉的部分手机（a1200,e60等），不支持gb2312编码。曾经给我造成了不少麻烦。现在，大家可以分享解决这个问题的一些经验。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;关于gb2312,unicode,utf-8的一些资料，大家请自行搜索。一下列举几个比较好的资源网址。&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://baike.baidu.com/view/25492.htm"&gt;http://baike.baidu.com/view/25492.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.utf.com.cn/article/s45"&gt;http://www.utf.com.cn/article/s45&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.utf.com.cn/article/s74"&gt;http://www.utf.com.cn/article/s74&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://www.haiyan.com/steelk/navigator/ref/gb2312/gbindex.htm"&gt;http://www.haiyan.com/steelk/navigator/ref/gb2312/gbindex.htm&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;要点：&lt;/p&gt;&lt;p&gt;1,gb2312于unicode或者utf-8之间并不存在直接的映射关系。所以我们只能通过查表法来进行转换。&lt;/p&gt;&lt;p&gt;2,utf-8是unicode用于网络传输的一种形式，它与unicode之间是可以通过运算来进行转换的。&lt;/p&gt;&lt;p&gt;3,j2me环境使用的都是utf-8编码，但是请注意，j2me中的utf-8编码比较特殊，在整个编码前面对了两个字节，用于存放字符串的长度。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;过程：&lt;/p&gt;&lt;p&gt;1，制作映射表gb2312-unicode，应为汉字的unicode比utf-8要小，这样做出的表也会小一些，而且对于unicode的可扩展性也强一些。&lt;/p&gt;&lt;p&gt;2，先将gb2312编码串通过查表，转换为unicode。&lt;/p&gt;&lt;p&gt;3，然后通过运算，将unicode转换为utf-8,以便在j2me环境下使用。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;我修改了Herong Yang大侠的一个映射表生成函数，原文请参考&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.herongyang.com/gb2312/gb2312_unicode.html"&gt;http://www.herongyang.com/gb2312/gb2312_unicode.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;它的作用是生成一个二进制的gb2312到unicode的查找表，它按照gb2312的分区，分块特性，将其对应的unicode按顺序存入指定的位置。&lt;/p&gt;&lt;p&gt;这样我们只需要根据gb2312的编码，计算出索引就可以获取编码对应的unicode了。&lt;/p&gt;&lt;p&gt;由于是修改的代码，没脸贴出来，大家有需求可以直接参考Herong Yang的文章，然后根据自己需求修改并生成自己的映射表。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这里我把自己这个转换表文件以及访问代码公开。&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://download.csdn.net/source/263609"&gt;http://download.csdn.net/source/263609&lt;/a&gt;&lt;/p&gt;&lt;p&gt;转帖请注明。这是个傻瓜化的代码，在java中给它gb2312的byte数组，它就给你构造出字符串。&lt;/p&gt;&lt;p&gt;用在不支持gb2312的手机上非常方便。这个转换表的大小是15228byte，对j2me来说还是可以接受的。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;如果有朋友需要沟通，可以发邮件到&lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:hunhun1981@hotmail.com"&gt;hunhun1981@hotmail.com&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:3aa9d73c-ff07-4daa-a7e0-7c9e1b7f4842]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;import java.io.InputStream;

public class HGB2312 {

&amp;nbsp;&amp;nbsp;&amp;nbsp; private byte[] map = new byte[15228];

&amp;nbsp;&amp;nbsp;&amp;nbsp; private byte[] buffer;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private int index;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public HGB2312() throws Exception {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream is = getClass().getResourceAsStream("/gb2u.dat");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.read(map);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public String gb2utf8(byte[] gb) throws Exception {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer = new byte[gb.length + gb.length / 2 + 3];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c, h, l, ind;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; gb.length;) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (gb+ &amp;gt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillBuffer(gb[i++]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = 256 + gb[i++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = 256 + gb[i++];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h = h - 0xA0 - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l = l - 0xA0 - 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (h &amp;lt; 9) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = (h * 94 + l) &amp;lt;&amp;lt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = (byte2Int(map[ind]) &amp;lt;&amp;lt; 8 | byte2Int(map[ind + 1]));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillBuffer(c);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (h &amp;gt;= 9 &amp;amp;&amp;amp; h &amp;lt;= 14) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillBuffer(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (h &amp;gt; 14) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h -= 6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = (h * 94 + l) &amp;lt;&amp;lt; 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = (byte2Int(map[ind]) &amp;lt;&amp;lt; 8 | byte2Int(map[ind + 1]));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillBuffer(c);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fillBuffer(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ind = index - 2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // h = (byte) ((ind &amp;gt;&amp;gt; 8) &amp;amp; 0x7F);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // l = (byte) (ind &amp;amp; 0xFF);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // buffer[0] = h;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // buffer[1] = l;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new String(buffer, 0, index, "UTF-8");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void fillBuffer(int value) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (value &amp;lt;= 0x0000007F) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = (byte) value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (value &amp;gt;= 0x00000080 &amp;amp;&amp;amp; value &amp;lt;= 0x000007FF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b1 = (byte) (0x60 | (value &amp;gt;&amp;gt; 6));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b2 = (byte) (0x80 | (value &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (value &amp;gt;= 0x00000800 &amp;amp;&amp;amp; value &amp;lt;= 0x0000FFFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b1 = (byte) (0xE0 | (value &amp;gt;&amp;gt; 12));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b2 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 6) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b3 = (byte) (0x80 | (value &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (value &amp;gt;= 0x00010000 &amp;amp;&amp;amp; value &amp;lt;= 0x001FFFFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b1 = (byte) (0x1E | (value &amp;gt;&amp;gt; 18));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b2 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 12) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b3 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 6) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b4 = (byte) (0x80 | (value &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (value &amp;gt;= 0x00200000 &amp;amp;&amp;amp; value &amp;lt;= 0x03FFFFFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b1 = (byte) (0x3E | (value &amp;gt;&amp;gt; 24));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b2 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 18) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b3 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 12) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b4 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 6) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b5 = (byte) (0x80 | (value &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (value &amp;gt;= 0x04000000 &amp;amp;&amp;amp; value &amp;lt;= 0x7FFFFFFF) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b1 = (byte) (0x7E | (value &amp;gt;&amp;gt; 30));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b2 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 24) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b3 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 18) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b4 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 12) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b5 = (byte) (0x80 | ((value &amp;gt;&amp;gt; 6) &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte b6 = (byte) (0x80 | (value &amp;amp; 0x3F));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b3;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer[index++] = b6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private int byte2Int(byte b) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (b &amp;lt; 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 256 + b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:3aa9d73c-ff07-4daa-a7e0-7c9e1b7f4842]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:60b84038-e600-439d-89be-e9b17d8eef60] --&gt;</description>
      <pubDate>Wed, 23 Jan 2008 06:48:52 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43105</guid>
      <dc:date>2008-01-23T06:48:52Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>1</clearspace:messageCount>
    </item>
    <item>
      <title>J2ME经验总结之MD5(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43152</link>
      <description>&lt;!-- [DocumentBodyStart:794d92a0-381f-4236-822b-21069c9ae1c7] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;md5的全称是message-digest algorithm 5（信息-摘要算法），在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来，经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式（就是把一个任意长度的字节串变换成一定长的大整数）。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt; 下面是以前扒来的MD5算法的JAVA版本，J2ME可以放心使用。&lt;/p&gt;&lt;!--[CodeBlockStart:7a8a2310-4ab8-4a20-9c18-e3856b2a7b27]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;package common;
public class HMD5 {

&amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 下面这些S11-S44实际上是一个4*4的矩阵，在原始的C实现中是用#define 实现的,这里把它们 /* 实现成为static
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * final是表示了只读，切能在同一个进程空间内的多个Instance间共享
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S11 = 7;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S12 = 12;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S13 = 17;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S14 = 22;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S21 = 5;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S22 = 9;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S23 = 14;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S24 = 20;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S31 = 4;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S32 = 11;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S33 = 16;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S34 = 23;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S41 = 6;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S42 = 10;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S43 = 15;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final int S44 = 21;

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0,

&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 下面的三个成员是MD5计算过程中用到的3个核心数据，在原始的C实现中 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 被定义到MD5_CTX结构中 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long[] state = new long[4]; // state (ABCD)

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long[] count = new long[2]; // number of bits, modulo 2^64

&amp;nbsp;&amp;nbsp;&amp;nbsp; // (lsb

&amp;nbsp;&amp;nbsp;&amp;nbsp; // first)

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static byte[] buffer = new byte[64]; // input buffer

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* digestHexStr是MD5的唯一一个公共成员，是最新一次计算结果的16进制ASCII表示. */

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static String digestHexStr;

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* digest,是最新一次计算结果的2进制内部表示，表示128bit的MD5值. */

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static byte[] digest = new byte[16];

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* getMD5ofStr是类MD5最主要的公共方法，入口参数是你想要进行MD5变换的字符串 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 返回的是变换完的结果，这个结果是从公共成员digestHexStr取得的． */

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static String getMD5ofStr(String inbuf) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Init();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(inbuf.getBytes(), inbuf.length());

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Final();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digestHexStr = "";

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 16; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digestHexStr += byteHEX(digest+);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return digestHexStr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static String getMD5ofStr(byte[] inbuf) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Init();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(inbuf, inbuf.length);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Final();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digestHexStr = "";

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 16; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digestHexStr += byteHEX(digest+);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return digestHexStr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static byte[] getMD5(byte[] data1, byte[] data2) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Init();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(data1, data1.length);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(data2, data2.length);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // md5Update(Request.key , Request.key.length);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Final();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return digest;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* md5Init是一个初始化函数，初始化核心变量，装入标准的幻数 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void md5Init() {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[0] = 0L;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[1] = 0L;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Load magic initialization constants.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[0] = 0x67452301L;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[1] = 0xefcdab89L;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[2] = 0x98badcfeL;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[3] = 0x10325476L;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* F, G, H ,I 是4个基本的MD5函数，在原始的MD5的C实现中，由于它们是 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 简单的位运算，可能出于效率的考虑把它们实现成了宏，在java中， */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 我把它们实现成了private方法，名字保持了原来C中的。 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long F(long x, long y, long z) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (x &amp;amp; y) | ((~x) &amp;amp; z);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long G(long x, long y, long z) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (x &amp;amp; z) | (y &amp;amp; (~z));
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long H(long x, long y, long z) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return x ^ y ^ z;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long I(long x, long y, long z) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return y ^ (x | (~z));
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FF,GG,HH和II将调用F,G,H,I进行近一步变换 FF, GG, HH, and II transformations */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * for rounds 1, 2, 3, and 4. Rotation is separate from addition to prevent
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * recomputation.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long FF(long a, long b, long c, long d, long x, long s,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long ac) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += F(b, c, d) + x + ac;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = ((int) a &amp;lt;&amp;lt; s) | ((int) a &amp;gt;&amp;gt;&amp;gt; (32 - s));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long GG(long a, long b, long c, long d, long x, long s,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long ac) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += G(b, c, d) + x + ac;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = ((int) a &amp;lt;&amp;lt; s) | ((int) a &amp;gt;&amp;gt;&amp;gt; (32 - s));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long HH(long a, long b, long c, long d, long x, long s,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long ac) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += H(b, c, d) + x + ac;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = ((int) a &amp;lt;&amp;lt; s) | ((int) a &amp;gt;&amp;gt;&amp;gt; (32 - s));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long II(long a, long b, long c, long d, long x, long s,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long ac) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += I(b, c, d) + x + ac;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = ((int) a &amp;lt;&amp;lt; s) | ((int) a &amp;gt;&amp;gt;&amp;gt; (32 - s));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a += b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* md5Update是MD5的主计算过程，inbuf是要变换的字节串，inputlen是长度，这个 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 函数由getMD5ofStr调用，调用之前需要调用md5init，因此把它设计成private */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void md5Update(byte[] inbuf, int inputLen) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, index, partLen;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] block = new byte[64];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = (int) (count[0] &amp;gt;&amp;gt;&amp;gt; 3) &amp;amp; 0x3F;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Update number of bits */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((count[0] += (inputLen &amp;lt;&amp;lt; 3)) &amp;lt; (inputLen &amp;lt;&amp;lt; 3))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[1]++;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count[1] += (inputLen &amp;gt;&amp;gt;&amp;gt; 29);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partLen = 64 - index;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Transform as many times as possible.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (inputLen &amp;gt;= partLen) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Memcpy(buffer, inbuf, index, 0, partLen);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Transform(buffer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = partLen; i + 63 &amp;lt; inputLen; i += 64) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Memcpy(block, inbuf, 0, i, 64);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Transform(block);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Buffer remaining input */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Memcpy(buffer, inbuf, index, i, inputLen - i);

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* md5Final整理和填写输出结果 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void md5Final() {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bits = new byte[8];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int index, padLen;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Save number of bits */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Encode(bits, count, 8);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Pad out to 56 mod 64.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = (int) (count[0] &amp;gt;&amp;gt;&amp;gt; 3) &amp;amp; 0x3f;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; padLen = (index &amp;lt; 56) ? (56 - index) : (120 - index);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(PADDING, padLen);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Append length (before padding) */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; md5Update(bits, 8);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // /* Store state in digest */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Encode(digest, state, 16);

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* md5Memcpy是一个内部使用的byte数组的块拷贝函数，从input的inpos开始把 */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* len长度的字节拷贝到output的outpos位置开始. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void md5Memcpy(byte[] output, byte[] input, int outpos,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int inpos, int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; len; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output[outpos + i] = input[inpos + i];
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* md5Transform是MD5核心变换程序，有md5Update调用，block是分块的原始字节. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void md5Transform(byte block[]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long a = state[0], b = state[1], c = state[2], d = state[3];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long[] x = new long[16];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Decode(x, block, 64);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Round 1 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = FF(a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = FF(d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = FF(c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = FF(b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = FF(a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = FF(d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = FF(c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = FF(b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = FF(a, b, c, d, x[8], S11, 0x698098d8L); /* 9 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = FF(d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = FF(c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = FF(b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = FF(a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = FF(d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = FF(c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = FF(b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Round 2 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = GG(a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = GG(d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = GG(c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = GG(b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = GG(a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = GG(d, a, b, c, x[10], S22, 0x2441453L); /* 22 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = GG(c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = GG(b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = GG(a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = GG(d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = GG(c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = GG(b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = GG(a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = GG(d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = GG(c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = GG(b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Round 3 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = HH(a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = HH(d, a, b, c, x[8], S32, 0x8771f681L); /* 34 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = HH(c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = HH(b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = HH(a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = HH(d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = HH(c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = HH(b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = HH(a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = HH(d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = HH(c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = HH(b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = HH(a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = HH(d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = HH(c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = HH(b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Round 4 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = II(a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = II(d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = II(c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = II(b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = II(a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = II(d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = II(c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = II(b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = II(a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = II(d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = II(c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = II(b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = II(a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d = II(d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = II(c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = II(b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[0] += a;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[1] += b;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[2] += c;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; state[3] += d;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Encode把long数组按顺序拆成byte数组，因为java的long类型是64bit的， */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 只拆低32bit，以适应原始C实现的用途. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void Encode(byte[] output, long[] input, int len) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, j;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0, j = 0; j &amp;lt; len; i++, j += 4) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output[j] = (byte) (input+ &amp;amp; 0xffL);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output[j + 1] = (byte) ((input+ &amp;gt;&amp;gt;&amp;gt; 8) &amp;amp; 0xffL);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output[j + 2] = (byte) ((input+ &amp;gt;&amp;gt;&amp;gt; 16) &amp;amp; 0xffL);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output[j + 3] = (byte) ((input+ &amp;gt;&amp;gt;&amp;gt; 24) &amp;amp; 0xffL);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Decode把byte数组按顺序合成成long数组，因为java的long类型是64bit的， */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 只合成低32bit，高32bit清零，以适应原始C实现的用途. */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void Decode(long[] output, byte[] input, int len) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, j;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0, j = 0; j &amp;lt; len; i++, j += 4)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output+ = b2iu(input[j]) |

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (b2iu(input[j + 1]) &amp;lt;&amp;lt; 8) |

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (b2iu(input[j + 2]) &amp;lt;&amp;lt; 16) |

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (b2iu(input[j + 3]) &amp;lt;&amp;lt; 24);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* b2iu是一个把byte按照不考虑正负号的原则的＂升位＂程序，因为java没有unsigned运算 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static long b2iu(byte b) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b &amp;lt; 0 ? b &amp;amp; 0x7F + 128 : b;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* byteHEX()，用来把一个byte类型的数转换成十六进制的ASCII表示， */

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 因为java中的byte的toString无法实现这一点，我们又没有C语言中的sprintf(outbuf,"%02X",ib). */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static String byteHEX(byte ib) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* if want to output normal letter please user DigitNormal */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] DigitNormal = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '9',

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'a', 'b', 'c', 'd', 'e', 'f' };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* if want to output capitalization letter please user DigitCap */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * char[] DigitCap = { '0','1','2','3','4','5','6','7','8','9',
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 'A','B','C','D','E','F' };
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] ob = new char[2];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ob[0] = DigitNormal[(ib &amp;gt;&amp;gt;&amp;gt; 4) &amp;amp; 0X0F];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ob[0] = DigitCap[(ib &amp;gt;&amp;gt;&amp;gt; 4) &amp;amp; 0X0F]; */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ob[1] = DigitNormal[ib &amp;amp; 0X0F];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ob[1] = DigitCap[ib &amp;amp; 0X0F]; */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String s = new String(ob);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return s;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:7a8a2310-4ab8-4a20-9c18-e3856b2a7b27]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:794d92a0-381f-4236-822b-21069c9ae1c7] --&gt;</description>
      <pubDate>Fri, 25 Jan 2008 01:20:39 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43152</guid>
      <dc:date>2008-01-25T01:20:39Z</dc:date>
      <clearspace:dateToText>1 year, 10 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>sony W580的walkman问题求教。</title>
      <link>http://developer.sonyericsson.com/community/thread/43356</link>
      <description>&lt;!-- [DocumentBodyStart:e30caace-7175-4f5d-86fd-bf388b7f51f5] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;我有一个w580, 目前有一个bug关于walkman模式。在j2me游戏里当我按下walkman按钮后，手机没有能够立刻中断，而是要等10～20秒才能进入walkman模式。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;请问有没有什么建议呢？谢谢。&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e30caace-7175-4f5d-86fd-bf388b7f51f5] --&gt;</description>
      <pubDate>Thu, 07 Feb 2008 17:19:20 GMT</pubDate>
      <author>developerworldwatch@kpi-consulting.net</author>
      <guid>http://developer.sonyericsson.com/community/thread/43356</guid>
      <dc:date>2008-02-07T17:19:20Z</dc:date>
      <clearspace:dateToText>1 year, 9 months ago</clearspace:dateToText>
      <clearspace:messageCount>2</clearspace:messageCount>
      <clearspace:replyCount>1</clearspace:replyCount>
    </item>
    <item>
      <title>J2ME经验总结之汉字转拼音(中文论坛有奖活动)</title>
      <link>http://developer.sonyericsson.com/community/thread/43107</link>
      <description>&lt;!-- [DocumentBodyStart:b04bff29-0cb4-4f24-9485-e047d1b21709] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;在网上参考了一些汉字转换到拼音的资料。思路应该只有以下两种。&lt;/p&gt;&lt;p&gt;1，查表法。这样做需要一个庞大的映射表，在j2me环境下不大合适。不过效果好，有些还支持多音字。&lt;/p&gt;&lt;p&gt;2，使用GB字库的映射关系。因为GB2312及其扩展GBK的汉字编码都根据区位于拼音存在映射关系。&lt;/p&gt;&lt;p&gt;实际上网络上的大部分文章都是根据第二种方法来实现的。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我也是采用这种方法，因为它基本上可以利用GB2312字库，直接映射成拼音。&lt;/p&gt;&lt;p&gt;如果遇到不支持GB2312的手机，请参考上一篇文章。&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://blog.csdn.net/hunhun1981/archive/2007/10/26/1845576.aspx"&gt;http://blog.csdn.net/hunhun1981/archive/2007/10/26/1845576.aspx&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;首先来介绍下原始的代码，由于这个代码在网上存在多个版本，并不知道原始作者是谁。&lt;/p&gt;&lt;p&gt;再次鄙视哪些剽窃人家东西不留名的人。&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://hibernate.blogdriver.com/hibernate/1036902.html"&gt;http://hibernate.blogdriver.com/hibernate/1036902.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;或者各位可以在百度中搜索“java 中文 拼音”，即可找到很多帖子，基本全是这份代码。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以下是一个重要片段。&lt;/p&gt;&lt;!--[CodeBlockStart:84a12906-7535-490b-b4e9-e52775844de2]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 获得单个汉字的Ascii.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param cn char
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 汉字字符
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return int
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 错误返回 0,否则返回ascii
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static int getCnAscii(char cn) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = (String.valueOf(cn)).getBytes();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes == null || bytes.length &amp;gt; 2 || bytes.length &amp;lt;= 0) { //错误
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes.length == 1) { //英文字符
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes.length == 2) { //中文字符
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int hightByte = 256 + bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int lowByte = 256 + bytes[1];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ascii = (256 * hightByte + lowByte) - 256 * 256;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System.out.println("ASCII=" + ascii);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ascii;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0; //错误
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:84a12906-7535-490b-b4e9-e52775844de2]--&gt;&lt;p&gt;这个方法中有一个片段大家需要注意，“(String.valueOf(cn)).getBytes();”这一句。&lt;/p&gt;&lt;p&gt;这里获得的应该是GBK编码，可不是unicode。&lt;/p&gt;&lt;p&gt;unicode是无法使用现在的方法来获取拼音的，只能用查表法，弄一张对于j2me来说很庞大的映射表。&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面详细介绍一下我改进后的方法。并且对原始代码的作者表示感谢，虽然不知道他是谁。 &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:ab3b45c1-0282-4173-a80d-6ed439aad2df]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;public class HGB2PINYIN {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String[] name = { "zuo", "zun", "zui", "zuan", "zu", "zou",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zong", "zi", "zhuo", "zhun", "zhui", "zhuang", "zhuan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zhuai", "zhua", "zhu", "zhou", "zhong", "zhi", "zheng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zhen", "zhe", "zhao", "zhang", "zhan", "zhai", "zha", "zeng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zen", "zei", "ze", "zao", "zang", "zan", "zai", "za", "yun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "yue", "yuan", "yu", "you", "yong", "yo", "ying", "yin", "yi",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ye", "yao", "yang", "yan", "ya", "xun", "xue", "xuan", "xu",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "xiu", "xiong", "xing", "xin", "xie", "xiao", "xiang", "xian",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "xia", "xi", "wu", "wo", "weng", "wen", "wei", "wang", "wan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "wai", "wa", "tuo", "tun", "tui", "tuan", "tu", "tou", "tong",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ting", "tie", "tiao", "tian", "ti", "teng", "te", "tao",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "tang", "tan", "tai", "ta", "suo", "sun", "sui", "suan", "su",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "sou", "song", "si", "shuo", "shun", "shui", "shuang", "shuan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "shuai", "shua", "shu", "shou", "shi", "sheng", "shen", "she",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "shao", "shang", "shan", "shai", "sha", "seng", "sen", "se",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "sao", "sang", "san", "sai", "sa", "ruo", "run", "rui", "ruan",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ru", "rou", "rong", "ri", "reng", "ren", "re", "rao", "rang",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ran", "qun", "que", "quan", "qu", "qiu", "qiong", "qing",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "qin", "qie", "qiao", "qiang", "qian", "qia", "qi", "pu", "po",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ping", "pin", "pie", "piao", "pian", "pi", "peng", "pen",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "pei", "pao", "pang", "pan", "pai", "pa", "ou", "o", "nuo",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "nue", "nuan", "nv", "nu", "nong", "niu", "ning", "nin", "nie",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "niao", "niang", "nian", "ni", "neng", "nen", "nei", "ne",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "nao", "nang", "nan", "nai", "na", "mu", "mou", "mo", "miu",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ming", "min", "mie", "miao", "mian", "mi", "meng", "men",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mei", "me", "mao", "mang", "man", "mai", "ma", "luo", "lun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "lue", "luan", "lv", "lu", "lou", "long", "liu", "ling", "lin",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "lie", "liao", "liang", "lian", "lia", "li", "leng", "lei",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "le", "lao", "lang", "lan", "lai", "la", "kuo", "kun", "kui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kuang", "kuan", "kuai", "kua", "ku", "kou", "kong", "keng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ken", "ke", "kao", "kang", "kan", "kai", "ka", "jun", "jue",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "juan", "ju", "jiu", "jiong", "jing", "jin", "jie", "jiao",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "jiang", "jian", "jia", "ji", "huo", "hun", "hui", "huang",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "huan", "huai", "hua", "hu", "hou", "hong", "heng", "hen",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "hei", "he", "hao", "hang", "han", "hai", "ha", "guo", "gun",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "gui", "guang", "guan", "guai", "gua", "gu", "gou", "gong",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "geng", "gen", "gei", "ge", "gao", "gang", "gan", "gai", "ga",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "fu", "fou", "fo", "feng", "fen", "fei", "fang", "fan", "fa",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "er", "en", "e", "duo", "dun", "dui", "duan", "du", "dou",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "dong", "diu", "ding", "die", "diao", "dian", "di", "deng",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "de", "dao", "dang", "dan", "dai", "da", "cuo", "cun", "cui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cuan", "cu", "cou", "cong", "ci", "chuo", "chun", "chui",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "chuang", "chuan", "chuai", "chu", "chou", "chong", "chi",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cheng", "chen", "che", "chao", "chang", "chan", "chai", "cha",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ceng", "ce", "cao", "cang", "can", "cai", "ca", "bu", "bo",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bing", "bin", "bie", "biao", "bian", "bi", "beng", "ben",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "bei", "bao", "bang", "ban", "bai", "ba", "ao", "ang", "an",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ai", "a" };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int[] code = { -10254, -10256, -10260, -10262, -10270, -10274,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10281, -10296, -10307, -10309, -10315, -10322, -10328, -10329,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10331, -10519, -10533, -10544, -10587, -10764, -10780, -10790,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10800, -10815, -10832, -10838, -11014, -11018, -11019, -11020,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11024, -11038, -11041, -11045, -11052, -11055, -11067, -11077,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11097, -11303, -11324, -11339, -11340, -11358, -11536, -11589,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -11604, -11781, -11798, -11831, -11847, -11861, -11867, -12039,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12058, -12067, -12074, -12089, -12099, -12120, -12300, -12320,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12346, -12359, -12556, -12585, -12594, -12597, -12607, -12802,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12812, -12829, -12831, -12838, -12849, -12852, -12858, -12860,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -12871, -12875, -12888, -13060, -13063, -13068, -13076, -13091,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13095, -13096, -13107, -13120, -13138, -13147, -13318, -13326,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13329, -13340, -13343, -13356, -13359, -13367, -13383, -13387,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13391, -13395, -13398, -13400, -13404, -13406, -13601, -13611,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13658, -13831, -13847, -13859, -13870, -13878, -13894, -13896,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -13905, -13906, -13907, -13910, -13914, -13917, -14083, -14087,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14090, -14092, -14094, -14097, -14099, -14109, -14112, -14122,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14123, -14125, -14135, -14137, -14140, -14145, -14149, -14151,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14159, -14170, -14345, -14353, -14355, -14368, -14379, -14384,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14399, -14407, -14429, -14594, -14630, -14645, -14654, -14663,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14668, -14670, -14674, -14678, -14857, -14871, -14873, -14882,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14889, -14894, -14902, -14908, -14914, -14921, -14922, -14926,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -14928, -14929, -14930, -14933, -14937, -14941, -15109, -15110,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15117, -15119, -15121, -15128, -15139, -15140, -15141, -15143,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15144, -15149, -15150, -15153, -15158, -15165, -15180, -15183,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15362, -15363, -15369, -15375, -15377, -15385, -15394, -15408,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15416, -15419, -15435, -15436, -15448, -15454, -15625, -15631,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15640, -15652, -15659, -15661, -15667, -15681, -15701, -15707,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15878, -15889, -15903, -15915, -15920, -15933, -15944, -15958,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -15959, -16155, -16158, -16169, -16171, -16180, -16187, -16202,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16205, -16212, -16216, -16220, -16393, -16401, -16403, -16407,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16412, -16419, -16423, -16427, -16429, -16433, -16448, -16452,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16459, -16465, -16470, -16474, -16647, -16657, -16664, -16689,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -16706, -16708, -16733, -16915, -16942, -16970, -16983, -17185,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17202, -17417, -17427, -17433, -17454, -17468, -17482, -17487,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17496, -17676, -17683, -17692, -17697, -17701, -17703, -17721,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17730, -17733, -17752, -17759, -17922, -17928, -17931, -17947,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -17950, -17961, -17964, -17970, -17988, -17997, -18012, -18181,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18183, -18184, -18201, -18211, -18220, -18231, -18237, -18239,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18446, -18447, -18448, -18463, -18478, -18490, -18501, -18518,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18526, -18696, -18697, -18710, -18722, -18731, -18735, -18741,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18756, -18763, -18773, -18774, -18783, -18952, -18961, -18977,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -18996, -19003, -19006, -19018, -19023, -19038, -19212, -19218,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19224, -19227, -19235, -19238, -19242, -19243, -19249, -19261,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19263, -19270, -19275, -19281, -19288, -19289, -19467, -19479,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19484, -19500, -19515, -19525, -19531, -19540, -19715, -19725,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19728, -19739, -19741, -19746, -19751, -19756, -19763, -19774,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -19775, -19784, -19805, -19976, -19982, -19986, -19990, -20002,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -20026, -20032, -20036, -20051, -20230, -20242, -20257, -20265,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -20283, -20292, -20295, -20304, -20317, -20319 };

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getPinyin(String gb2312) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (null == gb2312 || "".equals(gb2312.trim())) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return gb2312;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] chars = gb2312.toCharArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer retuBuf = new StringBuffer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0, Len = chars.length; i &amp;lt; Len; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retuBuf.append(getPinyin(chars+));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end of for
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return retuBuf.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getPinyin(char gb2312) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ascii = getCnAscii(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ascii == 0) { // 取ascii时出错
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.valueOf(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String spell = getSpellByAscii(ascii);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (spell == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return String.valueOf(gb2312);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return spell;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // end of if spell == null
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int getCnAscii(char cn) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bytes = (String.valueOf(cn)).getBytes("GB2312");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes == null || bytes.length &amp;gt; 2 || bytes.length &amp;lt;= 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes.length == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int hightByte = 256 + bytes[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int lowByte = 256 + bytes[1];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ascii = (256 * hightByte + lowByte) - 256 * 256;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ascii;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String getSpellByAscii(int ascii) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&a