Midlet从蓝牙连接唤醒

时间:2010-01-24 15:21:35

标签: java-me bluetooth

我正在尝试注册midlet进行推送注册,以便从蓝牙连接中唤醒。

请求的行为是,当汽车套件(免提)将在设备范围内时,应用程序将被唤醒。

有可能吗?

如果是,应该怎么做?

提前致谢,

3 个答案:

答案 0 :(得分:1)

我可以确认可以通过推送注册表中的注册服务唤醒诺基亚设备中的MIDlet。 注册可以在JAD(静态注册)中定义,也可以在代码中动态定义。

诺基亚手机S60 3及以上和S40 3ed应支持此功能,在其他手机上(索尼,三星,摩托罗拉等)。我没有发现此功能正常工作。

Google这个JAD属性:MIDlet-Push-1

祝你好运!

答案 1 :(得分:0)

这是高级的东西。好的。

虽然根据JSR-118和JSR-82规范可以在手机上使用,但我怀疑没有多少手机制造商真正实现过它。

Symbian为其授权商提供了符合TCK标准的Java BlueTooth Push参考实现,但测试它是一场噩梦,我不知道诺基亚,摩托罗拉或索尼爱立信是否真的将这些功能包含在手机中。

我对Symbian手机的最佳猜测是:诺基亚N95,索尼爱立信P990或W960,摩托罗拉Z8。我还建议您尽量尝试使用支持蓝牙的非Symbian索尼爱立信手机。

如果您发现手机规格实际上表明它支持J2ME BT Push,那么您需要检查是否应该使用RFComm,L2CAP或两者兼有。我不知道你的车载套件使用了什么。

至于编写Java代码以使用Bt push,您可以先阅读Sun JS的2个JSR和J2ME SDK中的示例代码。

答案 2 :(得分:0)

我认为,当进入设备的范围时,启动 midlet是不可能的,即使是蓝牙推送注册表兼容性(你是否找到支持它的手机)。

您最好的选择可能是让midlet在后台运行,不断检查附近有哪些设备。当它发现你的免提套件时,你可以把它带到前台(如果手机支持它;这通常由Display.setCurrent(null)为背景,Display.setCurrent(<Displayable instance>)为前景。)

JSR 82提供您需要的功能。

请注意,这种持续的蓝牙轮询会耗尽设备的电池电量!