关于J2ME中蓝牙应用程序开发的问题(在线等)

jn989 2009-01-09 11:13:39
既然java有虚拟机,J2ME又是虚拟机上封装的协议框架,JSR-82又是其中的可选包,那么支不支持JSR-82应该是说虚拟机吧,不应该说是手机是否支持吧?
但看书时发现一句"设备需要同时实现蓝牙API和蓝牙技术才能运行蓝牙程序",难道这个“实现蓝牙API”是要手机支持蓝牙API吗?
1.请问高人,支不支持JSR-82到底是说虚拟机还是说手机等设备啊?
2.要是指虚拟机的话,如果不能运行蓝牙程序,那么换一个java虚拟机是否就能解决呢?
3.要在手机上运行自己编写的蓝牙程序,到底需要哪些条件或者环境?
...全文
683 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
thanks_you 2012-10-03
  • 打赏
  • 举报
回复
最近我也想做蓝牙的设计,不过刚接触,什么都不懂的,看来大家的对话感觉你们真厉害啊
redw25 2010-04-30
  • 打赏
  • 举报
回复
楼上哥们,在多普达P800上面,通过j2me获取GPS定位数据行吗?JSR179不指望了,通过串口读取怎么也不行啊?
hanker_zhou 2010-01-12
  • 打赏
  • 举报
回复
如果有什么蓝牙方面或者手机上虚拟机JVM的任何问题,都可以回答你。
hanker_zhou 2010-01-12
  • 打赏
  • 举报
回复
蓝牙有自己的一套协议,有SIG规定。
JVM也有自己一套标准,现在流行的J2ME是基于sun制定的一套标准[MIDP2.0 MIDP2.1]
Jblendia 是一个实现这套标准比较好的厂家,现在和MTK预集成最好。
如果需要J2ME编写的MIDLet应用能够运行蓝牙功能,则需要做好这两部分,即bluetooth 的一套和jsr82一套。
关于蓝牙协议有很多profile: spp opp ftp hfg hid avrcp avrdp bpp bip sync 等等。但是jsr82只用到两种:一种是基于spp的,一种是基于l2cap的实现。
这样做的原因,一个是因为SIG在提供spp的初衷就是仿真串口功能,供用户开发自己的不同形式的应用,没有局限性。
二是因为SIG提供的spp上开发的应用不需要过BQB认证[蓝牙的一个标准认证,所有需要贴蓝牙图标的设备必须过这个认证],所以JAVA联盟就选用spp来作为实现jsr82的基础。可以省掉认证的麻烦,以及费用。
hanker_zhou 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jn989 的回复:]
引用 5 楼 kf156 的回复:
试试多普达官方模拟器看看
还有个叫jblend的好像说是支持JSR82

这方面我也不太了解

多谢这位大哥的关注!
其实这个多普达手机自带着一个虚拟机,据网上人说好像就是jblend;我下了一个Jbed,感觉还行除蓝牙方面的程序都运行起来了,难道这个版本不支持JSR-82?我的版本是2008年2月的。多普达的官方模拟器好像也找不到啊,网站上没有,只有些朋友自己传的,也不知道是不是官方的,但还是不能用!
难道就没有可以下载支持蓝牙的多普达支持的java虚拟机的网站吗?
[/Quote]

java要想运行蓝牙的相关功能需要满足以下条件:
1.手机平台支持蓝牙功能
a.有蓝牙芯片
b.蓝牙功能实现
2.手机上的JVM[java虚拟机]要支持jsr82
手机平台比较多:
MTK, windowsCE,Qualcomm,S60等
蓝牙芯片厂商:
CSR qualcom 博通。。。。。
JVM也比较多:
NOkai,jblendia,
其中jblendia支持jsr82很好,但是这个要看手机厂商在购买Jblendia产品时,有没有定植jsr82

现在关于手机上蓝牙的应用越来越多。
jn989 2009-01-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chenzhiyubuaa 的回复:]
jsr82只是定义了javame调用的api,这些api的实现是需要调用平台的蓝牙协议栈的

1.请问高人,支不支持JSR-82到底是说虚拟机还是说手机等设备啊?
至少从硬件上说,需要蓝牙设备,平台需要有蓝牙协议栈,在java层实现有jsr82的api。但是如果一个手机说支持jsr82,那么它必然会有蓝牙设备和蓝牙协议栈。

2.要是指虚拟机的话,如果不能运行蓝牙程序,那么换一个java虚拟机是否就能解决呢?
如果你的平台有蓝牙设备和蓝牙协…
[/Quote]
现在基本这些问题解决了,也马上结贴了,但是有个问题没有解决:
如果我现在在WM上直接用C#开发的话,这部手机需要支持什么,换句话说,我怎么知道这部手机能不能开发蓝牙程序呢?
chenzhiyubuaa 2009-01-15
  • 打赏
  • 举报
回复
jsr82只是定义了javame调用的api,这些api的实现是需要调用平台的蓝牙协议栈的

1.请问高人,支不支持JSR-82到底是说虚拟机还是说手机等设备啊?
至少从硬件上说,需要蓝牙设备,平台需要有蓝牙协议栈,在java层实现有jsr82的api。但是如果一个手机说支持jsr82,那么它必然会有蓝牙设备和蓝牙协议栈。

2.要是指虚拟机的话,如果不能运行蓝牙程序,那么换一个java虚拟机是否就能解决呢?
如果你的平台有蓝牙设备和蓝牙协议栈的话,那么移植一个实现了jsr82的jvm过去,是可以跑的。

3.要在手机上运行自己编写的蓝牙程序,到底需要哪些条件或者环境?
如果是java me的程序,那么是需要实现jsr82。或者严格说,是同时需要有蓝牙设备,蓝牙协议栈和jsr82
如果不是java me的程序,那么需要将程序移植到平台上,可以直接调用平台提供的bt的api
jn989 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hellogv 的回复:]
bluecove相当于一个中间接口软件吧?
可以这样理解
[/Quote]
“大哥,这个不是什么权威说法啊?难道微软和sun的主页上没有说明吗?我找了两天了没找到,当然英语不好也是一个原因。”这个问题呢?
noenoughmemory 2009-01-11
  • 打赏
  • 举报
回复
ding
欧巴Godwin 2009-01-11
  • 打赏
  • 举报
回复
bluecove相当于一个中间接口软件吧?
可以这样理解
jn989 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hellogv 的回复:]
微软压根就不管什么JSR,只知道用.net跟JAVA做竞争。SUN的JSR,在不同平台上的移植,好多都是开源社区自己搞定的。
你想要权威的说法?!看看这里:
https://phoneme.dev.java.net/content/phoneme_platforms.html#phonemefeature
这个社区就是SUN支持的,从MR1版本开始,就有JSR-82的支持,不过,支持的平台不是Wince,因为SUN也不喜欢微软的东西!
[/Quote]
哎,看来没希望了,老板采购了6部多普达手机做这个项目开发,硬件上已经规定死了,我对J2ME还有点基础,但事到如今这个项目用J2ME看来是没希望了,只能换.net平台了
多谢这位兄弟了
欧巴Godwin 2009-01-11
  • 打赏
  • 举报
回复
微软压根就不管什么JSR,只知道用.net跟JAVA做竞争。SUN的JSR,在不同平台上的移植,好多都是开源社区自己搞定的。
你想要权威的说法?!看看这里:
https://phoneme.dev.java.net/content/phoneme_platforms.html#phonemefeature
这个社区就是SUN支持的,从MR1版本开始,就有JSR-82的支持,不过,支持的平台不是Wince,因为SUN也不喜欢微软的东西!
jn989 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hellogv 的回复:]
目前为止的WM的CLDC-JAVA虚拟机还不支持JSR-82,CDC的已经支持了
[/Quote]
真的吗?这位大哥有确凿证据吗?
欧巴Godwin 2009-01-10
  • 打赏
  • 举报
回复
目前为止的WM的CLDC-JAVA虚拟机还不支持JSR-82,CDC的已经支持了
jn989 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hellogv 的回复:]
http://www.cs.kuleuven.be/~davy/phoneme/other.htm
JSR 82 - BlueCove with the phoneME Advanced - Dual Stack

http://bluecove.sourceforge.net/

具体的移植方法,去找高手吧..........
[/Quote]
大哥,这个不是什么权威说法啊?难道微软和sun的主页上没有说明吗?我找了两天了没找到,当然英语不好也是一个原因。

看了那个链接,意思是说,现在的windows mobile系统不支持JSR-82;于是一些牛人开发出了这个bluecove,是JSR-82的具体实现,我要是用java的话就在windows mobile系统上安装一个bluecove,然后在上边用J2SE开发,这里的bluecove相当于一个中间接口软件吧?
欧巴Godwin 2009-01-10
  • 打赏
  • 举报
回复
http://www.cs.kuleuven.be/~davy/phoneme/other.htm
JSR 82 - BlueCove with the phoneME Advanced - Dual Stack

http://bluecove.sourceforge.net/

具体的移植方法,去找高手吧..........
kf156 2009-01-09
  • 打赏
  • 举报
回复
换的那虚拟机支持JSR-82吗?
两个报的错应该一样吧,只是一个是英文一个是中文
jn989 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kf156 的回复:]
设备需要同时实现蓝牙API和蓝牙技术才能运行蓝牙程序
这句说明不但得虚拟机支持,手机也得支持
1.支不支持JSR-82说的是虚拟机
2.如果手机支持蓝牙技术的话,那么换一个虚拟机就行了(前提是手机能更换虚拟机,如:WindowsMobile手机)
3.支持JSR-82的虚拟机以及支持蓝牙技术的手机
[/Quote]
那我的手机是多普达的,而且是windows mobile系统,支持蓝牙功能,为什么编写的蓝牙程序不能在它上面运行呢?程序很简单,就是LocalDevice.getProperty("bluetooth.api.version"),打包后在nokia手机上可以运行得到1.0;但多普达上不行,有异常:java.lang.NoClassDefFoundError,换虚拟机后为:JAVA CLASS找不到!
请问如何解决?
kf156 2009-01-09
  • 打赏
  • 举报
回复
设备需要同时实现蓝牙API和蓝牙技术才能运行蓝牙程序
这句说明不但得虚拟机支持,手机也得支持
1.支不支持JSR-82说的是虚拟机
2.如果手机支持蓝牙技术的话,那么换一个虚拟机就行了(前提是手机能更换虚拟机,如:WindowsMobile手机)
3.支持JSR-82的虚拟机以及支持蓝牙技术的手机
jn989 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kf156 的回复:]
试试多普达官方模拟器看看
还有个叫jblend的好像说是支持JSR82

这方面我也不太了解
[/Quote]
多谢这位大哥的关注!
其实这个多普达手机自带着一个虚拟机,据网上人说好像就是jblend;我下了一个Jbed,感觉还行除蓝牙方面的程序都运行起来了,难道这个版本不支持JSR-82?我的版本是2008年2月的。多普达的官方模拟器好像也找不到啊,网站上没有,只有些朋友自己传的,也不知道是不是官方的,但还是不能用!
难道就没有可以下载支持蓝牙的多普达支持的java虚拟机的网站吗?
加载更多回复(2)

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧