【问题标题】:cellsite GPS in bb curve 8520bb 曲线中的蜂窝基站 GPS 8520
【发布时间】:2011-10-20 17:05:52
【问题描述】:

谁能给我一个代码来获取黑莓8520 os 5.0版的cellsite gps位置。 我手机的详细信息:

  model:bb curve 8520
  version :5.0.0.1036
  carrier:airtel (post paid )
  location :Andhra Pradesh ,India
  data services :on

当我安装谷歌地图时,我可以看到位置,因此有机会使用此手机获取当前位置。

我正在尝试开发一个应用程序,该应用程序将通过使用蜂窝站点位置来显示手机的当前位置,因为此手机型号没有内置 GPS 设备。

请急 我在互联网上尝试了几个例子,但都是徒劳的。

提前致谢

这是我使用的代码:

        BlackBerryCriteria bc=new BlackBerryCriteria(GPSInfo.       GPS_MODE_CELLSITE );        
  try {
      LocationProvider lp=LocationProvider.getInstance(bc);
         if(lp !=null)
       {
        Location loc=lp.getLocation(-1);
        add (new EditField(loc.getQualifiedCoordinates().getLatitude()+"\n"+loc.getQualifiedCoordinates().getLongitude(),""));
       }
else
     {
    add(new EditField("unable to find the location provider", ""));
     }
} catch (LocationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}}

但我遇到了一个未捕获的异常 net.rim.device.api.UnsupportedOperationException。

请帮我处理一下紧急情况

【问题讨论】:

    标签: blackberry gps


    【解决方案1】:

    首先,黑莓在印度不提供地图。 您只能从您的设备获取 Lat Lon。

    当您尝试获取 lat lon 时,请前往空旷的地方。 请勿在办公室、房间或建筑物内尝试。

    转到Gps Lat Lon

    【讨论】:

    • 我已将谷歌地图下载到我的手机中,并且可以在地图中查看当前位置。我并不是说我使用了黑莓地图。请通过这个问题:stackoverflow.com/questions/7816724/…
    • 不,我从谷歌服务器下载了谷歌地图,并用它来查找位置。我想开发一个应用程序,它可以在没有内置 GPS 接收器的 black berry 8520 设备中找到当前的经纬度信息。
    • 我认为手机站点方法是唯一的方法。
    • 我现在已经编辑了这个问题,我已经把我用过的代码放好了。
    • 试试我在回答中编辑的链接。您将使用此代码获得 Lat Lon。因为我用相同的代码得到了 lat lon。
    【解决方案2】:
        import java.util.TimerTask;
    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.UiApplication;
    import net.rim.device.api.ui.component.Dialog;
    
    public class HandleMAPAPI 
    {
        static boolean _isCancel = false;
        private Criteria criteria;
        double latitude ,longitude;
        TimerTask _loadinglatlon;
        private LocationProvider provider,_locationProvider;
        Location location = null;
        boolean _islatlong;
    
        public HandleMAPAPI()
        {
            startLocationUpdate() ;
        }
    
        public void startLocationUpdate() 
        {
            try{
                _locationProvider = LocationProvider.getInstance(null);
                if (_locationProvider != null) {
                    _locationProvider.setLocationListener(
                            new LocationListenerImpl(), 1, 1, 1);
                } else {
                    setupCriteria();
                    setupProvider();
                }
            }catch(LocationException le){
                System.out.println("----Exception Of Location--"+le);
            }
        }
    
        /**
         * Initializes criteria according to the mode selected by the user.
         */
        private void setupCriteria() {
            criteria = new Criteria();
            criteria.setCostAllowed(true);
            criteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT);
            criteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT);
            criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
        }
    
        /**
         * Initializes LocationProvider based on specified mode and Criteria.
         */
        private void setupProvider() {
            try {
    
                // Just to give setupPDE and criteria setup.. some time. This may
                // not be needed at all.
                try {
                    Thread.sleep(5000);
                } catch (Throwable e) {
                   System.out.println(e.toString());
                }
    
                provider = LocationProvider.getInstance(criteria);
                if (provider != null) {
                    singleFixLocationUpdate();
                } else {
                    //Utilites.log("Provider unavailable for that Criteria");
                }
            } catch (Throwable t) {
                System.out.println(t.toString());
            }
        }
    
        /**
         * Gets a single fix by calling LocationProvider.getLocation().
         */
    
        private void singleFixLocationUpdate() {
            try {
                location = provider.getLocation(-1);
            } catch (InterruptedException ie) {
                System.out.println("InterruptedException thrown by getLocation(): "
                        + ie.toString());
            } catch (LocationException le) {
                System.out.println("LocationException thrown by getLocation(): "
                        + le.toString());
            } catch (Throwable t) {
                System.out.println(t.toString());
            }
            if (location != null) {
                if (location.isValid()) {
                    System.out.println("Valid single fix: "
                            + location.getQualifiedCoordinates().getLatitude()
                            + ", "
                            + location.getQualifiedCoordinates().getLongitude()
                            + " "
                            + location.getQualifiedCoordinates().getAltitude());
    
                    longitude= location.getQualifiedCoordinates()
                            .getLongitude();
                    latitude = location.getQualifiedCoordinates()
                            .getLatitude();
    
                    if (longitude != 0.0 && latitude != 0.0) {
    
                    }
                    else{
                        System.out.println("----Cell site Sunnyvale--");
                    }
                } else {
                    System.out.println("Invalid single fix");
                }
            } else 
            {
                closeLoading("null", "null");
                Dialog.alert("No GPS Found");
            }
        }
    
        public  class LocationListenerImpl implements LocationListener {
            public void locationUpdated(LocationProvider provider, Location location) {
                System.out.println("---Location Updated-----");
                if (location.isValid()) {
    
                    System.out.println("---Location Valid----");
                    longitude = location.getQualifiedCoordinates()
                            .getLongitude();
                    latitude= location.getQualifiedCoordinates()
                            .getLatitude();
                    if (longitude != 0.0 && latitude != 0.0) {
    
                    } else {
                        System.out.println("--Cellsite valide=-----");
                            setupCriteria();
                            setupProvider();
                    }
                    _locationProvider.setLocationListener(null, 0, 0, 0);
    
                }else{
                    System.out.println("else NOT valid--Cellsite valide=-----");
                    setupCriteria();
                    setupProvider();
                }
                System.out.println("---Location Not Valid----");
            }
    
            public void providerStateChanged(LocationProvider provider, int newState) {}
        }       
    }
    

    【讨论】:

    • 此代码将提供 Gps 启用设备和非 gps 设备的纬度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多