BlackBerry应用程序中的当前经度和纬度

时间:2010-02-22 10:12:36

标签: blackberry java-me blackberry-storm

我想在我的BlackBerry应用中获取用户的经度和经度,然后根据它生成地图。

我该怎么做?

我的代码是:

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 个答案:

答案 0 :(得分:1)

Google result(恰巧Stack Overflow)会显示API调用getLocation()。这可以为您提供检索经度和纬度的起点。

加成;以下内容可能会有所帮助(使用基于您的评论的后续Google搜索):http://www.blackberryforums.com/developer-forum/133152-location-api.html。我会引用一些代码,但那里有相当多的信息。我们只希望链接保持有效,或者在找到时发布您的解决方案:)