Current latitude and longitude in a BlackBerry app

烈酒焚心 提交于 2019-12-06 11:31:57

问题


I want to get the user's latitude and longitude in my BlackBerry app, and then generate the maps according to it.

How can I do that?

my code is:

import java.util.Timer;
import java.util.TimerTask;

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

import net.rim.device.api.system.Application;




public class GPS_Location 
{
    private String log;
      double longi;
      double lati;

    public GPS_Location()
    {
        new LocationTracker();
    }
    public boolean onClose()
    {
        Application.getApplication().requestBackground();       
        return false;
    }


class LocationTracker extends TimerTask
{
    private  double longitude, latitude;

    private Timer timer;
    private LocationProvider provider;
    Criteria cr;

    public LocationTracker() 
    {
        timer = new Timer();
        cr= new Criteria();
        resetGPS();

        timer.schedule(this, 0, 60000);
    }

    public void resetGPS()
    {

        try 
        {
            provider = LocationProvider.getInstance(cr);
            if(provider != null) 
            {
                /*provider.setLocationListener(null, 0, 0, 0);
                provider.reset();
                provider = null;*/
                provider.setLocationListener(new MyLocationListener(), 3, -1, -1);
            }

            //provider = LocationProvider.getInstance(null);

        } catch(Exception e)
        { 

        }
    }


    public void run() 
    {
        System.out.println("********************");
    }

    private class MyLocationListener implements LocationListener 
    {
        public void locationUpdated(LocationProvider provider, Location location)
        {
            if(location != null && location.isValid())
            {               
                QualifiedCoordinates qc = location.getQualifiedCoordinates();

                try 
                {
                    lati = location.getQualifiedCoordinates().getLatitude();
                    System.out.println("********************latitude :: "+lati);
                    longi = location.getQualifiedCoordinates().getLongitude();
                    System.out.println("********************longitude ::"+longi);

                } 
                catch(Exception e)
                   { 

                   }
            }

        }

        public void providerStateChanged(LocationProvider provider, int newState)
        {
            //LocationTracker.this.resetGPS();
             if(newState == LocationProvider.TEMPORARILY_UNAVAILABLE)
                {
                    provider.reset();
                    provider.setLocationListener(null, 0, 0, -1);
                }
        }
    }
  } 
}

回答1:


A Google result (coincidentally Stack Overflow) reveals the API call getLocation(). This may provide you with a starting point for retrieving the longitude and latitude.

Addition; the following may be helpful (from a subsequent Google search using terms based on your comment): http://www.blackberryforums.com/developer-forum/133152-location-api.html. I would quote some of the code, but there is a fair bit of information there. Let's just hope the link remained valid, or you post your solution when found :)



来源:https://stackoverflow.com/questions/2310137/current-latitude-and-longitude-in-a-blackberry-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!