Имитация широт и долгот в BlackBerry Simulator - PullRequest
0 голосов
/ 19 апреля 2011

Я новичок в Blackberry. Я пытался найти широту и долготу. Я использовал приведенный ниже код, но он всегда возвращает 0.0, 0.0 для широты и долготы. Может ли кто-нибудь удостовериться, что я выбрал правильный код? (Или) я делаю что-то не так где.

Даже я пытался установить широту и долготу в симуляторе BB. (Симуляция-> Местоположение GPS-> Добавлена ​​новая локация), но все равно получим широту (0.0,0.0).

Пожалуйста, найдите код, который я пробовал,

// Locationfinder.java

package com.beacon.bb.app;

import javax.microedition.location.Criteria;
import javax.microedition.location.Location;
import javax.microedition.location.LocationException;
import javax.microedition.location.LocationListener;
import javax.microedition.location.LocationProvider;

import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;


 public class LocationFinder extends MainScreen  {

private int _interval = -1;
private double mLatitude, mLongitude;

public LocationFinder() {
     super(); 
     // Set criteria for selecting a location provider:
     Criteria cr= new Criteria();
     cr.setCostAllowed(true);
     cr.setPreferredResponseTime(60);
     cr.setHorizontalAccuracy(5000);
     cr.setVerticalAccuracy(5000);
     cr.setAltitudeRequired(true);
     cr.isSpeedAndCourseRequired();
     cr.isAddressInfoRequired();
     add(new RichTextField("Getting Coordinates...."));
     try{    
         LocationProvider lp = LocationProvider.getInstance(cr);
         if( lp!=null ){

               lp.setLocationListener(new LocationListenerImpl(), _interval, 1, 1); 
         }           
         add(new RichTextField("Calulating GPS Cordinates :"));
         add(new RichTextField("Latitude  :" + mLatitude  + "," + "Longitude :" + mLongitude));
         //System.out.println("Lon" + longitude + " Lat "+ latitude + " course "+course+" speed "+speed+" timestamp "+timestamp);
 }
 catch(LocationException le)
 {
         add(new RichTextField("Location exception "+le));
 }

 }

private class LocationListenerImpl implements LocationListener { 
    public void locationUpdated(LocationProvider provider, Location location) {
            if(location.isValid()) {
                   double longitude = location.getQualifiedCoordinates().getLongitude();
                    double latitude = location.getQualifiedCoordinates().getLatitude();
                    double altitude = location.getQualifiedCoordinates().getAltitude();
                    float speed = location.getSpeed(); 
                    System.out.println("Lon" + longitude + " Lat "+ latitude + " speed "+speed);
                    mLatitude = latitude;
                    mLongitude  = longitude;

            }
    }

    public void providerStateChanged(LocationProvider provider, int newState) {
            // MUST implement this.  Should probably do something use ful with it as well.
    }
    }
    }

1 Ответ

0 голосов
/ 20 апреля 2011

Вы установили _interval в -1, что должно быть допустимым временем в секундах.i означает, что значение _interval указывает, сколько раз будет прослушиваться местоположение.

также попробуйте эту ссылку:

Текущая широта и долгота в приложении BlackBerry

...