Nokia S40 3RE真的兑现了JSR 30

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的支持是不完全的。