You may have a problem with the hardware configuration.
The
Java GPS subsystem is fairly abstract, so any and all GPS devices that it knows about will be candidates for selection. That way you can choose between power economy, precision, and other criteria if there are multiple GPS providers available.
However, if the GPS device isn't registered with it, the Java GPS subsystem won't be able to connect. I have this problem because my phone runs the Windows Mobile OS, and even though a BlueTooth GPS will attach to it, my JVM is an external add-on that doesn't know how to talk to the OS at that level.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.