广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Android三种GSM手机定位技术分析

    2018-04-04 08:35:43 次阅读 稿源:互联网
    广告
    代码如下:

    // 声明LocationManager对象
    LocationManager loctionManager;
    // 通过系统服务,取得LocationManager对象
    loctionManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    方式一:
    代码如下:

    // 通过GPS位置提供器获得位置
    String providerGPS = LocationManager.GPS_PROVIDER;
    Location location = loctionManager.getLastKnownLocation(providerGPS);

    方式二:
    代码如下:

    // 通过基站位置提供器获得位置
    String providerNetwork = LocationManager.NETWORK_PROVIDER;
    Location location = loctionManager.getLastKnownLocation(providerNetwork);

    方式三:
    代码如下:

    // 使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);// 高精度
    criteria.setAltitudeRequired(false);// 不要求海拔
    criteria.setBearingRequired(false);// 不要求方位
    criteria.setCostAllowed(true);// 允许有花费
    criteria.setPowerRequirement(Criteria.POWER_LOW);// 低功耗
    // 从可用的位置提供器中,匹配以上标准的最佳提供器
    String provider = loctionManager.getBestProvider(criteria, true);
    // 获得最后一次变化的位置
    Location location = loctionManager.getLastKnownLocation(provider);


    处理:
    代码如下:

    // 显示在EditText中
    updateWithNewLocation(location);
    // 监听位置变化,2秒一次,距离10米以上
    loctionManager.requestLocationUpdates(provider, 1000, 1, locationListener);

    监听器及显示:
    代码如下:

    // 位置监听器
    private final LocationListener locationListener = new LocationListener() {
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    @Override
    public void onProviderEnabled(String provider) {
    }
    @Override
    public void onProviderDisabled(String provider) {
    }
    // 当位置变化时触发
    @Override
    public void onLocationChanged(Location location) {
    // 使用新的location更新TextView显示
    updateWithNewLocation(location);
    }
    };
    private void updateWithNewLocation(Location location) {
    if (location != null) {
    double lat = location.getLatitude();
    double lng = location.getLongitude();
    latStr = format.format(lat);
    lonStr = format.format(lng);
    txtLat.setText(latStr);
    txtLon.setText(lonStr);
    } else {
    txtLat.setText("");
    txtLon.setText("");
    }
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告