Как сохранить правильную дату и время из GPS - PullRequest
0 голосов
/ 30 ноября 2011

На самом деле я пишу код, чтобы я мог сохранить свою дату и время из местоположения Я получаю точную дату, но мое время составляет +5:30 от GMT в соответствии с моей страной. Я хочу сэкономить точное время, как я могу сделать это, это мой код: -

public void fnSetLocManager(){
    try{
        if(lm==null){
            lm=(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        }
        try{
            gps_enabled=lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
        }
        catch(Exception ex){}

        if(!gps_enabled){
            final Intent poke=new Intent();
             poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");
             poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
             poke.setData(Uri.parse("3"));
             sendBroadcast(poke);
        }
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
        lm.addGpsStatusListener(gpsStatusListener);
    }
    catch(Exception ex){
        ex.printStackTrace();
    }
}
LocationListener locationListener=new LocationListener(){
    public void onLocationChanged(Location location){
        dLat=location.getLatitude();
        dLng=location.getLongitude();

        Date d=new Date();
        _lGpsTime=d.getTime();

        SaveLocation();
    }
    public void onStatusChanged(String provider,int status,Bundle extras){}
    public void onProviderEnabled(String provider){}
    public void onProviderDisabled(String provider){}
};
GpsStatus.Listener gpsStatusListener=new GpsStatus.Listener(){
    @Override
    public void onGpsStatusChanged(int event){
        if(event==GpsStatus.GPS_EVENT_SATELLITE_STATUS){
            try{
                GpsStatus status=lm.getGpsStatus(null);
                sats=status.getSatellites();
                Iterator satI=sats.iterator();

                int count=0;
                while(satI.hasNext()){
                    GpsSatellite gpssatellite=(GpsSatellite) satI.next();
                    if(gpssatellite.usedInFix()){
                        count++;
                    }
                }
                iSalelliteCount=count;
            }
            catch(Exception ex){}
        }
    }
};

и здесь я объявляю дату и время для GPS

public void SaveLocation(){
    try{
        lm.removeGpsStatusListener(gpsStatusListener);
        lm.removeUpdates(locationListener);

        if(timer1!=null){
            timer1.cancel();
            timer1=null;
        }

        bIsOnLine=fnIsOnline();
        if(bIsOnLine==false){
            return;
        }

        Date dt=new Date();

        GPS gp=new GPS();

        gp.setMobileNo(sEmpMobile);
        gp.setDOT(new Date(Date.UTC(dt.getYear(),dt.getMonth()+1,dt.getDate(),dt.getHours(),dt.getMinutes(),dt.getSeconds())));
        gp.setLocation("");
        gp.setCoordinateType("GPS");
        gp.setLatitude(BigDecimal.valueOf(dLat));
        gp.setLongitude(BigDecimal.valueOf(dLng));
        gp.setUserID(Integer.parseInt(sUserId));
        gp.setUserName(sUserName);
        gp.setSataliteCount(iSalelliteCount);
...