Question

Je dois ajouter des fonctionnalités GPS à une application Blackberry existante que je l'ai écrit. Je vous écris une classe autonome appelée CurrentLocation, et inclure une méthode pour définir les différentes variables de localisation auxquelles je tiens en utilisant le GPS BlackBerry conjointement avec webservices inverse géocodage de Google. Tout fonctionne à merveille, qui est, jusqu'à ce que j'essaie de instancier ma nouvelle classe dans mon application principale.

Peu importe ce que je fais, je reçois un LocationException! .getLocation () ne fonctionne pas!

Il me confond vraiment, parce que si j'instancier ma classe dans une application Bonjour tout le monde de test, il fonctionne très bien.

Y at-il des limites à l'endroit où vous pouvez instancier des classes? Je n'ai pas rencontré aucun des classes précédentes que j'ai écrit. Dans ce cas, j'instanciation ma classe CurrentLocation dans un écouteur (afin que l'utilisateur ne fait que le GPS long et appels web quand ils veulent). Je l'ai essayé instancier dans les écrans, ainsi. J'ai essayé juste éviscération la classe et en utilisant l'appel de méthode, mais cela ne fonctionne pas non plus.

Y at-il quelque chose que je manque tout à fait ici?

http://pastie.org/639545

Il y a un lien vers la classe que je fais,

Et voici l'auditeur I "m essayant de instancier de. Je suis dans un thread d'événement parce que je pensais que cela pourrait aider (mais je reçois la même exception si je le fais).

FieldChangeListener listenerGPS = new FieldChangeListener() {
        public void fieldChanged(Field field, int context) {
            UiApplication.getUiApplication().invokeLater(new Runnable() {
                public void run() {
                    CurrentLocation loc = new CurrentLocation();
                    if (loc != null){
                        country = loc.getCountry();
                        city = loc.getCity();
                        state = loc.getState();
                        road = loc.getRoad();
                        zip = loc.getZip();
                    }
                    }

            });

        }
    };

Qu'est-ce que je suis absent ici?

Était-ce utile?

La solution

D'accord, je l'ai eu. Apparemment, vous pouvez pas appeler getLocation () dans le eventThread (pas seulement invokeLater, mais tout auditeur). Alors maintenant, ce que je fais est d'obtenir les coordonnées dans un filet extérieur de l'événement, et se soucier de google séparément.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top