日期:2014-05-16  浏览次数:20305 次

Nokia S40 3RE真的实现了JSR 30?

根据JSR 30即CLDC的规定,当流结束时,在流的尾部自动添加-1作为流结束标记,对于一个InputStream来说,我们总是可以使用:

java 代码
  1. StringBuffer?message?=?new?StringBuffer(); ??
  2. int?readed?=?0; ??
  3. try?{ ??
  4. while?((readed?=?inputStream.read())??!=?-1)?{ ??
  5. message.append((char)?readed); ??
  6. }catch?(IOException?e)?{ ??
  7. e.printStackTrace(); ??
  8. }??

读取流信息,然而,在S40 3RE的真机(模拟器没有测试,也没有测试的意义)上,当使用这段代码从蓝牙读取一个流的时候,实际上你无法到达流尾而跳出循环,而相同的程序,在S60上是没有问题的。

我的第一反应是,Nokia的S40 3RE的java是否通过了SUN的测试?

下面是我获取inputStream的方法:

java 代码
  1. String?url?=?"btspp://00025B00A5A5:1;authenticate=false;encrypt=false;master=false"; ??
  2. StreamConnection?connection?=?(StreamConnection)?Connector.open(url); ??
  3. InputStream?inputStream?=?connection.openInputStream();??

很奇怪的是,HTTP以及Socket好像是好的。可以肯定地是,S40 3RE对GCF的支持是不完全的。