<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marshal&#039;s Blog &#187; javame</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/javame/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>zxing条形码识别在javame中的使用</title>
		<link>http://marshal.easymorse.com/archives/2458?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zxing%25e6%259d%25a1%25e5%25bd%25a2%25e7%25a0%2581%25e8%25af%2586%25e5%2588%25ab%25e5%259c%25a8javame%25e4%25b8%25ad%25e7%259a%2584%25e4%25bd%25bf%25e7%2594%25a8</link>
		<comments>http://marshal.easymorse.com/archives/2458#comments</comments>
		<pubDate>Thu, 01 Apr 2010 03:01:20 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[javame]]></category>
		<category><![CDATA[条形码]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2458</guid>
		<description><![CDATA[今天安装了一下zxing条形码工具到nokia 6210ci，根本不可用。 然后找本书试试： 6210ci像素点比较低，只有二百万像素，而且不支持自动对焦，仅从手机屏幕截图来看，我都觉得识别没戏。 果然是没戏啊。 在nexus one下面测试很成功的，估计是因为上面说的两条，高像素和自动对焦。 javame的jar文件下载，在官方网站上没有公开发布，需要自己编译，要用ant。 不过我找到了它编译的jar文件链接，在： http://zxing.googlecode.com/svn/trunk/zxingorg/web/ 下载BarcodeReader.jad即可。 不知道是否有能用起来的手机。]]></description>
			<content:encoded><![CDATA[<p>今天安装了一下zxing条形码工具到nokia 6210ci，根本不可用。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000028.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000028" border="0" alt="Scr000028" src="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000028_thumb.jpg" width="161" height="213" /></a> </p>
<p>然后找本书试试：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000029.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000029" border="0" alt="Scr000029" src="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000029_thumb.jpg" width="200" height="260" /></a> </p>
<p>6210ci像素点比较低，只有二百万像素，而且不支持自动对焦，仅从手机屏幕截图来看，我都觉得识别没戏。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000030.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000030" border="0" alt="Scr000030" src="http://marshal.easymorse.com/wp-content/uploads/2010/04/Scr000030_thumb.jpg" width="184" height="244" /></a> </p>
<p>果然是没戏啊。</p>
<p> <span id="more-2458"></span>
<p>在nexus one下面测试很成功的，估计是因为上面说的两条，高像素和自动对焦。</p>
<p>javame的jar文件下载，在官方网站上没有公开发布，需要自己编译，要用ant。</p>
<p>不过我找到了它编译的jar文件链接，在：</p>
<blockquote><p><a href="http://zxing.googlecode.com/svn/trunk/zxingorg/web/">http://zxing.googlecode.com/svn/trunk/zxingorg/web/</a></p>
</blockquote>
<p>下载<a href="http://zxing.googlecode.com/BarcodeReader.jad">BarcodeReader.jad</a>即可。</p>
<p>不知道是否有能用起来的手机。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2458/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>java me定位API的简单使用</title>
		<link>http://marshal.easymorse.com/archives/2451?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-me%25e5%25ae%259a%25e4%25bd%258dapi%25e7%259a%2584%25e7%25ae%2580%25e5%258d%2595%25e4%25bd%25bf%25e7%2594%25a8</link>
		<comments>http://marshal.easymorse.com/archives/2451#comments</comments>
		<pubDate>Wed, 31 Mar 2010 08:12:19 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[javame]]></category>
		<category><![CDATA[javame jsr-179]]></category>
		<category><![CDATA[location api]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2451</guid>
		<description><![CDATA[java me的JSR-179（Location API）是用于定位的。很多手机并没有GPS，因此不能精准定位。但是GPS也有问题，比较费电。 很多手机可以借助运营商的网络和基站三角定位，来获得比较粗略的定位。 在nokia 6210ci上测试了一下jsr-179的支持情况。运行效果是： 输出纬度和经度。把这段内容复制到google map的文本框中，显示的位置和我办公地点相差不到1公里。 代码类似这样： protected void startApp() throws MIDletStateChangeException { &#160;&#160;&#160; if (System.getProperty(&#34;microedition.location.version&#34;) == null) { &#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(&#34;对不起，您的手机不支持定位功能。&#34;); &#160;&#160;&#160; } else { &#160;&#160;&#160;&#160;&#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(getLocationMessage()); &#160;&#160;&#160;&#160;&#160;&#160;&#160; } catch (Exception e) { &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; throw new RuntimeException(e.getMessage()); &#160;&#160;&#160;&#160;&#160;&#160;&#160; } &#160;&#160;&#160; } } private String getLocationMessage() throws LocationException, &#160;&#160;&#160;&#160;&#160;&#160;&#160; InterruptedException { [...]]]></description>
			<content:encoded><![CDATA[<p>java me的JSR-179（Location API）是用于定位的。很多手机并没有GPS，因此不能精准定位。但是GPS也有问题，比较费电。</p>
<p>很多手机可以借助运营商的网络和基站三角定位，来获得比较粗略的定位。</p>
<p>在nokia 6210ci上测试了一下jsr-179的支持情况。运行效果是：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image46.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb46.png" width="186" height="244" /></a> </p>
<p>输出纬度和经度。把这段内容复制到google map的文本框中，显示的位置和我办公地点相差不到1公里。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image47.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb47.png" width="336" height="196" /></a> </p>
<p> <span id="more-2451"></span>
<p>代码类似这样：</p>
<blockquote><p>protected void startApp() throws MIDletStateChangeException {      <br />&#160;&#160;&#160; if (System.getProperty(&quot;microedition.location.version&quot;) == null) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(&quot;对不起，您的手机不支持定位功能。&quot;);       <br />&#160;&#160;&#160; } else {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; try {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(getLocationMessage());       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } catch (Exception e) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; throw new RuntimeException(e.getMessage());       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160; }       <br />} </p>
<p>private String getLocationMessage() throws LocationException,      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; InterruptedException {       <br />&#160;&#160;&#160; Criteria c = new Criteria();       <br />&#160;&#160;&#160; c.setHorizontalAccuracy(1000);       <br />&#160;&#160;&#160; c.setVerticalAccuracy(1000);       <br />&#160;&#160;&#160; c.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);       <br />&#160;&#160;&#160; LocationProvider lp = LocationProvider.getInstance(c);       <br />&#160;&#160;&#160; Location loc = lp.getLocation(60); </p>
<p>&#160;&#160;&#160; QualifiedCoordinates qc = loc.getQualifiedCoordinates();      <br />&#160;&#160;&#160; return new StringBuffer().append(qc.getLatitude()).append(&quot;,&quot;).append(       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; qc.getLongitude()).toString();       <br />} </p>
<p>private void displayMessage(String message) {      <br />&#160;&#160;&#160; display = Display.getDisplay(this);       <br />&#160;&#160;&#160; TextBox t = new TextBox(&quot;手机定位（纬度,经度）&quot;, message, 256, 0);       <br />&#160;&#160;&#160; display.setCurrent(t);       <br />}</p>
</blockquote>
<p>在写完<a href="http://marshal.easymorse.com/archives/2473" title="使用android Location API获取经纬度值">使用android Location API获取经纬度值</a>后才发现，是地图不准，上面的坐标在用卫星图看，还是比较准的。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/04/image7.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/04/image_thumb7.png" width="244" height="224" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2451/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>短信猫向javame程序发送短信</title>
		<link>http://marshal.easymorse.com/archives/2446?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e7%259f%25ad%25e4%25bf%25a1%25e7%258c%25ab%25e5%2590%2591javame%25e7%25a8%258b%25e5%25ba%258f%25e5%258f%2591%25e9%2580%2581%25e7%259f%25ad%25e4%25bf%25a1</link>
		<comments>http://marshal.easymorse.com/archives/2446#comments</comments>
		<pubDate>Tue, 30 Mar 2010 09:41:18 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[javame]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2446</guid>
		<description><![CDATA[javame收发短信，必须带端口号。 通过手机发送的短信一般都不带端口号。使用短信猫，可以发送带端口号的短信，如果不指定端口，则是-1。 短信猫发送短信，可参见使用smslib收发短信。并在此基础上增加： msg.setSrcPort(1234); msg.setDstPort(1234); 发送短信前需要设置端口号，这两个缺一不可。 其实主要在javame这边。 如果是javame程序正在运行，那么可以通过类似方式： public void run() { &#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160;&#160;&#160; this.connection = (MessageConnection) Connector.open(&#34;sms://:&#34; + this.port); &#160;&#160;&#160;&#160;&#160;&#160;&#160; while (!stop) { &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Message message = this.connection.receive(); &#160; 在一个新线程里同步接收短信。 那么，如果程序并没有启动，是否可以通过短信激活javame程序读取它呢？答案是肯定的。 这需要手机支持MIDP2.0中的AMS。目前大部分手机均支持MIDP2.0了。 MIDlet代码： protected void startApp() throws MIDletStateChangeException { &#160;&#160;&#160; try { &#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(getMessage()); &#160;&#160;&#160; } catch (IOException e) [...]]]></description>
			<content:encoded><![CDATA[<p>javame收发短信，必须带端口号。</p>
<p>通过手机发送的短信一般都不带端口号。使用短信猫，可以发送带端口号的短信，如果不指定端口，则是-1。</p>
<p>短信猫发送短信，可参见<a href="http://marshal.easymorse.com/archives/2445" title="使用smslib收发短信">使用smslib收发短信</a>。并在此基础上增加：</p>
<blockquote><p>msg.setSrcPort(1234);     <br />msg.setDstPort(1234);</p>
</blockquote>
<p>发送短信前需要设置端口号，这两个缺一不可。</p>
<p>其实主要在javame这边。</p>
<p>如果是javame程序正在运行，那么可以通过类似方式：</p>
<blockquote><p>public void run() {     <br />&#160;&#160;&#160; try {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.connection = (MessageConnection) Connector.open(&quot;sms://:&quot; + this.port);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (!stop) {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; try {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Message message = this.connection.receive();</p>
<p>&#160;</p>
</blockquote>
<p>在一个新线程里同步接收短信。</p>
<p> <span id="more-2446"></span>
<p>那么，如果程序并没有启动，是否可以通过短信激活javame程序读取它呢？答案是肯定的。</p>
<p>这需要手机支持MIDP2.0中的AMS。目前大部分手机均支持MIDP2.0了。</p>
<p>MIDlet代码：</p>
<blockquote><p>protected void startApp() throws MIDletStateChangeException {     <br />&#160;&#160;&#160; try {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; displayMessage(getMessage());      <br />&#160;&#160;&#160; } catch (IOException e) {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; throw new RuntimeException(e.getMessage());      <br />&#160;&#160;&#160; }      <br />} </p>
<p>private String getMessage() throws IOException {     <br />&#160;&#160;&#160; MessageConnection connection = (MessageConnection) Connector      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .open(&quot;sms://:1234&quot;);      <br />&#160;&#160;&#160; TextMessage message = (TextMessage) connection.receive();      <br />&#160;&#160;&#160; connection.close();      <br />&#160;&#160;&#160; return message.getAddress() + &quot;-&quot; + message.getPayloadText();      <br />} </p>
<p>private void displayMessage(String message) {     <br />&#160;&#160;&#160; display = Display.getDisplay(this);      <br />&#160;&#160;&#160; TextBox t = new TextBox(&quot;演示应用&quot;, message, 256, 0);      <br />&#160;&#160;&#160; display.setCurrent(t);      <br />}</p>
<p>&#160;</p>
</blockquote>
<p>设置AMS，需要在Application Descriptor中加入：</p>
<blockquote><p>MIDlet-Push-1: sms://:1234,proto.ReceiveSms,*</p>
</blockquote>
<p>表示当1234端口短信来到时，调用proto.ReceiveSms，也就是上面代码的那个MIDlet。</p>
<p>以上代码，在：</p>
<ul>
<li>nokia 6120ci (s60)</li>
<li>sony ericsson W715</li>
<li>nokia 3110c (s40)</li>
</ul>
<p>测试运行正常。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2446/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搭建nokia s60下的javame开发环境</title>
		<link>http://marshal.easymorse.com/archives/2387?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e6%2590%25ad%25e5%25bb%25banokia-s60%25e4%25b8%258b%25e7%259a%2584javame%25e5%25bc%2580%25e5%258f%2591%25e7%258e%25af%25e5%25a2%2583</link>
		<comments>http://marshal.easymorse.com/archives/2387#comments</comments>
		<pubDate>Wed, 17 Mar 2010 07:38:44 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[javame]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[nokia s60]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2387</guid>
		<description><![CDATA[确切的说，是nokia s60第三版，使用的机器具体型号是6120ci。 想搭建一个比较高效方便的开发环境（能直接on device部署和调试程序，而不是把javame程序打包再部署），使用工具也尽量用最新的版本（java6/sun javame sdk3.0/eclipse 3.5.2等）。 我这里的环境是windows xp sp3，安装了java 1.6.0_15，安装了sun javame sdk 3.0，下载地址在： http://java.sun.com/javame/downloads/sdk30.jsp 安装eclipse 3.5.2，我安装的是jee版本，因为还可能做服务器端的开发。 启动eclipse，安装eclipse javame开发插件mtj，也就是以前的eclipseme，安装办法是， 然后，可以参照mtj网址中的链接安装： http://www.eclipse.org/dsdp/mtj/ 当前最新版本是1.0.1，复制它的update site链接： http://download.eclipse.org/dsdp/mtj/updates/1.0.1/stable 填入到eclipse的安装对话框中，点add按钮： 以下安装比较简单了。 安装好mtj后，要配置集成java me sdk中的设备。其实如果只使用nokia s60 sdk，可以不用。 大致是按照箭头的过程，browse的时候，目录选择java me sdk的bin目录，然后，插件将会导入java me sdk中的模拟手机设备。 到这一步，其实就可以做开发了，创建最简单的java me项目，选择设备，当然是java me sdk中的模拟设备了。然后开发代码，run的时候，插件将调用java me sdk中的模拟设备执行midlet或者jad。 但是模拟器中的测试和真机上的差别还是很大的，因此最好在真机上面执行和测试。 这就需要安装nokia s60 sdk，当然你必须有一部nokia s60智能机设备。而且要选对对应的版本。我在开始的时候，可能选择了c的版本，因此到run eclipse项目的时候，无法通信。 nokia手机连接到pc上，这需要驱动和一些连接工具，需要安装nokia pc suit，针对nokia 6120ci的版本是： http://www.nokia.com.cn/get-support-and-software/software/nokia-pc-suites/compatibility-and-download?#85 下载后，安装pc suit，安装好后，可以将手机和pc [...]]]></description>
			<content:encoded><![CDATA[<p>确切的说，是nokia s60第三版，使用的机器具体型号是6120ci。</p>
<p>想搭建一个比较高效方便的开发环境（能直接on device部署和调试程序，而不是把javame程序打包再部署），使用工具也尽量用最新的版本（java6/sun javame sdk3.0/eclipse 3.5.2等）。</p>
<p>我这里的环境是windows xp sp3，安装了java 1.6.0_15，安装了sun javame sdk 3.0，下载地址在：</p>
<blockquote><p><a href="http://java.sun.com/javame/downloads/sdk30.jsp">http://java.sun.com/javame/downloads/sdk30.jsp</a></p>
</blockquote>
<p>安装eclipse 3.5.2，我安装的是jee版本，因为还可能做服务器端的开发。</p>
<p>启动eclipse，安装eclipse javame开发插件mtj，也就是以前的eclipseme，安装办法是，</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image12.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb12.png" width="260" height="218" /></a> </p>
<p> <span id="more-2387"></span>
<p>然后，可以参照mtj网址中的链接安装：</p>
<blockquote><p><a href="http://www.eclipse.org/dsdp/mtj/">http://www.eclipse.org/dsdp/mtj/</a></p>
</blockquote>
<p>当前最新版本是1.0.1，复制它的update site链接：</p>
<blockquote><p><a title="http://download.eclipse.org/dsdp/mtj/updates/1.0.1/stable" href="http://download.eclipse.org/dsdp/mtj/updates/1.0.1/stable">http://download.eclipse.org/dsdp/mtj/updates/1.0.1/stable</a></p>
</blockquote>
<p>填入到eclipse的安装对话框中，点add按钮：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image13.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb13.png" width="493" height="155" /></a> </p>
<p>以下安装比较简单了。</p>
<p>安装好mtj后，要配置集成java me sdk中的设备。其实如果只使用nokia s60 sdk，可以不用。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image14.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb14.png" width="492" height="272" /></a> </p>
<p>大致是按照箭头的过程，browse的时候，目录选择java me sdk的bin目录，然后，插件将会导入java me sdk中的模拟手机设备。</p>
<p>到这一步，其实就可以做开发了，创建最简单的java me项目，选择设备，当然是java me sdk中的模拟设备了。然后开发代码，run的时候，插件将调用java me sdk中的模拟设备执行midlet或者jad。</p>
<p>但是模拟器中的测试和真机上的差别还是很大的，因此最好在真机上面执行和测试。</p>
<p>这就需要安装nokia s60 sdk，当然你必须有一部nokia s60智能机设备。而且要选对对应的版本。我在开始的时候，可能选择了c的版本，因此到run eclipse项目的时候，无法通信。</p>
<p>nokia手机连接到pc上，这需要驱动和一些连接工具，需要安装nokia pc suit，针对nokia 6120ci的版本是：</p>
<blockquote><p><a href="http://www.nokia.com.cn/get-support-and-software/software/nokia-pc-suites/compatibility-and-download?#85">http://www.nokia.com.cn/get-support-and-software/software/nokia-pc-suites/compatibility-and-download?#85</a></p>
</blockquote>
<p>下载后，安装pc suit，安装好后，可以将手机和pc suit连接，测试是否安装成功。</p>
<p>下载nokia s60版本，通过：</p>
<blockquote><p><a href="http://developer.nokia.com/">http://developer.nokia.com/</a></p>
</blockquote>
<p>首先，需要注册一个nokia的论坛会员，免费的。</p>
<p>下载和手机s60版本对应，而且是针对java的sdk。对于我这里，是：</p>
<blockquote><p><a href="http://www.forum.nokia.com/info/sw.nokia.com/id/6e772b17-604b-4081-999c-31f1f0dc2dbb/S60_Platform_SDKs_for_Symbian_OS_for_Java.html">http://www.forum.nokia.com/info/sw.nokia.com/id/6e772b17-604b-4081-999c-31f1f0dc2dbb/S60_Platform_SDKs_for_Symbian_OS_for_Java.html</a></p>
</blockquote>
<p>因为是做java开发，只需下载java版本即可，无需下载集成版本，会比较大。</p>
<p>安装好nokia sdk以后，还需要在手机上安装debug agent，这个程序是个symbian c程序，安装sdk以后，默认安装的路径是：</p>
<blockquote><p>C:\S60\devices\S60_3rd_MIDP_SDK_FP1\s60tools\Ecmt\EcmtAgent_MIDP.SIS</p>
</blockquote>
<p>这时确保手机和pc连接，并且pc suit生效，双击这个文件，将会激活nokia pc suit安装应用程序，会安装到手机的应用程序中，在我的手机上，是在应用程序下的我的助理里面。</p>
<p>在手机上启动这个程序，会是这个样子：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000011.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000011" border="0" alt="Scr000011" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000011_thumb.jpg" width="200" height="260" /></a> </p>
<p>可以将debug agent看作一个服务器端，监听usb连接（还可以监听蓝牙）。如果通过nokia sdk在pc端发起连接，就可以和手机通信了。</p>
<p>这个工具在这里：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image15.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb15.png" width="547" height="99" /></a> </p>
<p>启动后要选择连接端口，我这里是usb的，试了一下是com3，每个人的情况可能不一样，要测试一下就知道了。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image16.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb16.png" width="392" height="228" /></a> </p>
<p>双击com3，在我这里的情况，就会连接上。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb17.png" width="309" height="162" /></a> </p>
<p>手机端也会有变化：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000012.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000012" border="0" alt="Scr000012" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000012_thumb.jpg" width="200" height="260" /></a> </p>
<p>提示：connected USB，已经连接上了。</p>
<p>这时候，可以通过连接工具诊断功能，查看手机信息。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image18.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb18.png" width="260" height="117" /></a> </p>
<p>查看应用程序信息：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image19.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb19.png" width="260" height="151" /></a> </p>
<p>查看驱动器信息：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image20.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb20.png" width="347" height="110" /></a> </p>
<p>查看cpu信息：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image21.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb21.png" width="260" height="163" /></a> </p>
<p>查看内存信息：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image22.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb22.png" width="292" height="149" /></a> </p>
<p>哈哈，还是很方便的。这也是为什么是做javame开发也要用智能机的原因。</p>
<p>另外，可以在javame程序中打印日志，system.out，可以在这里显示。</p>
<p>第一次使用这个诊断功能，肯定会报错的，大概这样：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image23.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb23.png" width="289" height="190" /></a> </p>
<p>报告： cannot start ecmt manager</p>
<p>这是因为该工具的jdk版本中没有java6，所以无法执行。解决办法是，打开这个文件，加入红色框部分文字：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image24.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb24.png" width="458" height="244" /></a> </p>
<p>最后，需要将nokia设备导入到mtj的设备中，步骤类似上面导入java me 设备。</p>
<p>哦，对了，为了防止在手机上显示不了汉字，还需要：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image25.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb25.png" width="592" height="77" /></a></p>
<p>这是个测试代码：</p>
<blockquote><p>public class Helloworld extends MIDlet { </p>
<p>&#160;&#160;&#160; private Display display; </p>
<p>&#160;&#160;&#160; public Helloworld() {     <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; protected void destroyApp(boolean arg0) throws MIDletStateChangeException {     <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; protected void pauseApp() {     <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; protected void startApp() throws MIDletStateChangeException {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; display = Display.getDisplay(this);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; TextBox t = new TextBox(&quot;演示应用&quot;, &quot;你好，世界！&quot;, 256, 0);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; display.setCurrent(t);      <br />&#160;&#160;&#160; } </p>
<p>}</p>
<p>&#160;</p>
</blockquote>
<p>选择正确的runtime，运行环境，s60device即连接的nokia真机。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image26.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb26.png" width="405" height="124" /></a> </p>
<p>按照下面的图示，点击launch as emulated java me jad，可以看到会弹出sdk progress窗口。</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/image27.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/image_thumb27.png" width="311" height="224" /></a> </p>
<p>再看手机上：</p>
<p><a href="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000013.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scr000013" border="0" alt="Scr000013" src="http://marshal.easymorse.com/wp-content/uploads/2010/03/Scr000013_thumb.jpg" width="200" height="260" /></a> </p>
<p>好了，环境搭建完成了。下一步就是要编写复杂的应用啦。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2387/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaME SDK 3.0不支持Windows7 x64</title>
		<link>http://marshal.easymorse.com/archives/2307?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=javame-sdk-3-0%25e4%25b8%258d%25e6%2594%25af%25e6%258c%2581windows7-x64</link>
		<comments>http://marshal.easymorse.com/archives/2307#comments</comments>
		<pubDate>Thu, 11 Mar 2010 05:24:22 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javame]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2307</guid>
		<description><![CDATA[前两天成功的在win7 32位系统下安装了eclipse+mtj+javame sdk3.0的。虽然在javame sdk的官方网站只列出支持windows xp和vista 32位系统。 因此这回没多想，直接在windows7 x64下面安装了javame sdk3，没有任何报错。 然后安装了eclipse 64位系统和mtj，结果配置javame的时候，就是找不到javame设备。 到网上查了一下，可以下结论了，确实不支持。]]></description>
			<content:encoded><![CDATA[<p>前两天成功的在win7 32位系统下安装了eclipse+mtj+javame sdk3.0的。虽然在javame sdk的官方网站只列出支持windows xp和vista 32位系统。</p>
<p>因此这回没多想，直接在windows7 x64下面安装了javame sdk3，没有任何报错。</p>
<p>然后安装了eclipse 64位系统和mtj，结果配置javame的时候，就是找不到javame设备。</p>
<p>到网上查了一下，可以下结论了，确实不支持。</p>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2307/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

