2010-02-22 36 views
2

我想獲得用戶的緯度和經度在我的黑莓手機的應用程序,然後根據它生成的地圖。當前的經緯度在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); 
       } 
     } 
    } 
    } 
} 
+0

儘量給你看過什麼在一些例子您發佈的解決方案,嘗試,如果能夠提供你的問題的一些初步的代碼。無論如何,下面都有一個起點。 – 2010-02-22 10:37:04

回答

1

一個谷歌result(巧合的是堆棧溢出)揭示了API調用的getLocation()。這可能會爲您提供檢索經度和緯度的起點。

加成;下面可能會有所幫助(使用基於您的評論方面隨後谷歌搜索):http://www.blackberryforums.com/developer-forum/133152-location-api.html。我會引用一些代碼,但這裏有一些相關的信息。我們只是希望鏈接仍然有效,或當發現:)

+0

我用location.getQualifiedCordinates但yeilds 0值緯度經度ň在模擬器cordinates的我甚至改變後的值也 – Swati 2010-02-22 13:14:52

+0

嘿影子,我曾在同樣的方式爲紐帶建議,但每一次的結果是0/0(IM在模擬器風暴工作9000)。 – Swati 2010-02-23 07:53:18

+1

哎frnz我得到了我的錯誤,這是與模擬器 值未正確設置.... 但由於FR幫助!!!!!!!!!!!!!! – Swati 2010-02-24 04:08:39

相關問題