Android编程获取GPS速度

来源:互联网 发布:nothing 软件 编辑:程序博客网 时间:2024/05/24 06:23

博主之前设计电动自行车,因为测速电路不好设计,因此采用蓝牙连接主控,手机GPS测速并且授速于硬件CPU。

##GPS测速程序如下 #FF0011

        GPSmessage = (TextView) this.findViewById(R.id.textView4);//实例化控件用于显示        String serviceName = this.LOCATION_SERVICE;        //获得位置服务的管理对象            LocationManager locationManager = (LocationManager)getSystemService(serviceName);        // 通过GPS获取定位的位置数据            Criteria criteria = new Criteria();              criteria.setAccuracy(Criteria.ACCURACY_FINE);// 高精度              criteria.setAltitudeRequired(false);// 设置不需要获取海拔方向数据              criteria.setBearingRequired(false);// 设置不需要获取方位数据              criteria.setCostAllowed(true);// 设置允许产生资费              criteria.setPowerRequirement(Criteria.POWER_HIGH);// 低功耗  location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);updateToNewLocation(location);locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 500, 1, new LocationListener() {//监听参数500ms更新一次或者1米更新一次            public void onStatusChanged(String provider, int status, Bundle extras) {            }            public void onProviderEnabled(String provider) {            }            public void onProviderDisabled(String provider) {            }            public void onLocationChanged(Location location) {                updateToNewLocation(location);//进入更新程序            }        });

更新程序

    private void updateToNewLocation(Location location) {        if (location != null) {            double  latitude = location.getLatitude();//维度            double longitude= location.getLongitude();//经度            float  speed=location.getSpeed();//取得速度            DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.            String p=decimalFormat.format(speed*3.6);//format 返回的是字符串            GPSmessage.setText("速度:"+p);        } else {            GPSmessage.setText("无法获取地理信息");        }    }