当前位置: 代码迷 >> J2ME >> javax.microedition.io.ConnectionNotFoundException:  
  详细解决方案

javax.microedition.io.ConnectionNotFoundException:  

热度:7783   发布时间:2013-02-25 21:35:41.0
关于jsr75的几个问题 希望有经验的可以来给点意见
1,用w2k里自带的例子测试,在sun自己的default   color   phone虚拟机正常(虽然要不断的按权限确认),但是换到moto   sdk(5.5   e680)虚拟机下,只能打开root目录,也就是
FileSystemRegistry.listRoots();执行正常;但是要打开下一级目录是,老是抛出
javax.microedition.io.ConnectionNotFoundException:   The   requested   protocol   does   not   exist   file://localhost/a/
把localhost去掉,sun的模拟机仍可以用
moto的还是出错
javax.microedition.io.ConnectionNotFoundException:   The   requested   protocol   does   not   exist   file:///a/
2,用到真机上的话(e680i),程序直接不能打开.....经过资料搜索,好象是权限问题,还是必须用moto   sdk4.3或更早版本的sdk编译?
如此...现在管网已经没有4.3sdk下载了,湃求一个可用下载~~


各位达人有什么见解都可用放出来大家讨论看看,这问题捆饶我n久了~~help~~

------解决方案--------------------------------------------------------
1.你的对应目录没有找对,模拟器的对应目录在C:\WTK\appdb\DefaultColorPhone\filesystem下,例如,在filesystem下有个root1的文件夹,访问路径为file:///root1/;MOTO的模拟器同理

2.在真机上的访问路径是file:///c:/和file:///e:/,分别代表手机存储和存储卡
------解决方案--------------------------------------------------------
原来这样的
------解决方案--------------------------------------------------------
1.你的对应目录没有找对,模拟器的对应目录在C:\WTK\appdb\DefaultColorPhone\filesystem下,例如,在filesystem下有个root1的文件夹,访问路径为file:///root1/;MOTO的模拟器同理

.在真机上的访问路径是file:///c:/和file:///e:/,分别代表手机存储和存储卡

----------------------------------------------------------------------
各种型号的访问路径是有区别的,像NOKIA的的为 file:///c:/ ,其存储卡为:file:///e:/,在NOKIA中如果用FileSystemRegistry.listRoots();取各盘符的话除开取得file:///c:/和file:///e:/,可能还会取到file:///手机存储卡:/和file:///存储卡 :/的目录,实际上后两者是没用的,也不能作为路径打开文件,在SE和MOTO中取得的目录可能会因为OS的不同而有差异,会取得file:///ROOT:/,file:///a:/类似目录,而且很多MOTO和SE的机安全性也做得比较死,是要签名才能操作文件,NOKIA的大部分开放,但有安全提示

------解决方案--------------------------------------------------------
moto e680/a780并不是jsr-75,另外,有部分手机的文件访问使用的是私有API。
------解决方案--------------------------------------------------------
其实没必要知道目录只要能正确的打开手机系统就可以了
------解决方案--------------------------------------------------------
不一样的,应该是权限的问题,尤其的moto的机器,我们开发的也遇到过这样的问题,其实不是程序的问题,而是moto公司的问题,目前很多厂商都对第三方开发的软件做了权限的限制,即当要访问一些系统的资源,需要调用一些敏感/受限的API的时候,第三方的软件必须经过厂商的签名认可,也就是授权,我查了很多资料,moto几乎是不支持/不认可第三方的权威认证机构的证书,只认可moto自己的证书.而nokia则认可第三方的权威人证机构的证书.只要有他们认可的证书,你的程序才能访问用户敏感的数据,如jsr75中访问手机电话的api,就不行了.当然这也不是绝对,有些通过修改手机中的配置文件,也可以访问,如moto e60,好象是这个手机,修改register.txt文件中的部分内容,就可以调用jsr75提供的API来操作电话本了.你可以去看看具体的相关资料.
  相关解决方案