How to extend J2ME capabilities (eg, Bluetooth API) without access to JNI?

Posted on 2006-11-23
Last Modified: 2008-03-17
Ok - I need a real expert here, please bear in mind I've been doing J2ME on and off for about 4 years now, so I know a reasonable lot about the matter.

Here's the problem - I need to access Bluetooth devices on a particular phone (namely, XDA/SPV type devices) but the intalled KVM (namely, the crappy Intent JVM by Tao) does not support the Bluetooth API (JSR-82, I believe).

I would have no problem in writing the necessary C++ (native) classes/code to provide the functionality (in fact, I did exactly that for the iPaq to connect to a GPS bluetooth)


J2ME does not support JNI - so, how does one enable the connectivity?  unless I am the phone manufacturer or the KVM writer.

I suppose one solution would be to write a "localhost" on the native side and connect to it from the JVM, but (a) this would not be really compliant with JSR and (b) I shudder thinking writing a server using Win32....

Any suggestions?

Many thanks,
Question by:massenz
  • 2
  • 2

Expert Comment

ID: 18005787

 I am working in the same field for 5 years. When I saw your problem.. I thought only one answer. That is NO you can not access.

 If the JVM (or KVM) does not support the native calls of Blue tooth using KNI (similar to JNI), there is no way a application can access blue tooth using the JAVA Application.

 For Application ot use Blue tooth, the VM should suport Blue tooth classes either by JSR or by Native implementaion supprt by KNI.

Without that, I am afriad you can not do it.

If anybody have other way of doing please let us know.. we need it..


Author Comment

ID: 18008563
Sreenath - well, thanks... a bit disappointing, really...

anyone from Sun here?
is this THE single most serious shortcoming of J2ME?


Accepted Solution

sreenathk earned 500 total points
ID: 18089838
As far as I know.. If JVM (or KVM) does not support functionality either in the VM or in JSRs or in Native inplementation, we can not do anything with the application.


Author Comment

ID: 18091591
Well - after further investigation, it turns out that, sadly, it is NOT possible to extend in ANY WAY the KVM capabilities if CLDC config is supported

HOWEVER, if CDC config is supported, then JNI apparenly is available (eg one of the SonyEricsson model provides it) and then JNI can be used.

Not great, really - but that's life, I suppose.


Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

With the purchase of CloudCommand by Comcast customers are left in a bind as subscriptions expire and render the AP's disabled. The following will explain how to flash your Ubiquiti AP's with CloudCommand firmware back to Ubiquiti firmware. HOWTO…
This article is a step by step guide on how to create a basic PTP link using Ubiquiti airOS devices. This guide can be used on the following Ubiquiti AirMAX devices. Nanostation, Bullets, AirBridge, Nanobeam, NanoBridge to name a few. Please review …
This Micro Tutorial will show you how to maximize your wireless card to its maximum capability. This will be demonstrated using Intel(R) Centrino(R) Wireless-N 2230 wireless card on Windows 8 operating system.
Viewers will learn how to connect to a wireless network using the network security key. They will also learn how to access the IP address and DNS server for connections that must be done manually. After setting up a router, find the network security…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question