• Android中获取当前位置的使用步骤


    在Android中得到当前位置的步骤 1.在AndroidManifest.xml中声明权限
    android.permission.ACCESS_FINE_LOCATION(或者android.permission.ACCESS_COARSE_LOCATION)
    
    2.声明并实例化一个LocationManager对象 这个类提供了关于获取位置信息的服务,用于管理Android的定位服务。这个类同意应用定期的更新地理位置信息,同一时候同意当到达指定地点时候激活相关的Intent。
    LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    
    3.声明并设置Criteria对象。

    这个类是用来选择合适的provider的,他设置了一些条件,通过对这些条件进行筛选。系统得到最优的provider对象。条件有:精度,耗电量。海拔,方位,速度以及付费情况等。

    Criteria criteria=new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE); //精度要求:
    ACCURACY_FINE(高)ACCURACY_COARSE(低)
    criteria.setAltitudeRequired(false); // 不要求海拔信息
    criteria.setBearingAccuracy(Criteria.ACCURACY_HIGH); //方位信息的精度要求:
    ACCURACY_HIGH(高)ACCURACY_LOW(低)
    criteria.setBearingRequired(false); // 不要求方位信息
    criteria.setCostAllowed(true); // 是否同意付费
    criteria.setPowerRequirement(Criteria.POWER_LOW); // 对电量的要求 (HIGH、MEDIUM)
    
    4.依据criteria的条件获取最合适的provider。

    第二个參数是指是否仅仅返回当前处于激活状态的provider。

    String provider=locMan.getBestProvider(criteria,true);
    
    在这里简单介绍一下provider。provider是LocationManager获取位置信息的途径,经常使用的有两种:GPS和NETWORK。 GPS定位:更精确,缺点是仅仅能在户外使用,耗电严重,而且返回用户位置信息的速度远不能满足用户需求。须要在AndroidManifest.xml中声明权限:
    android.permission.ACCESS_FINE_LOCATION
    
    NETWORK定位:通过基站和Wi- Fi信号来获取位置信息,室内室外均可用。速度更快,耗电更少。须要在AndroidManifest.xml中声明权限:
    android.permission.ACCESS_FINE_LOCATION
    或者:android.permission.ACCESS_COARSE_LOCATION
    
    使用locMan.getAllProviders();能够获得全部已知provider的list。

    为了获取用户位置信息,我们能够使用多种定位方式的当中一个。也能够同一时候使用多个。

    5.设置监听器 设置有关更新操作的一些条件(时间间隔,距离间隔),监听器会定期的更新位置信息。这里设置了使用之前得到的最优provider。更新位置操作的时间间隔为1000毫秒,距离间隔为5米,绑定LListener监听器。

    locMan.requestLocationUpdates(provider, 1000, 5, new LListener());
    
    6.获取地理位置信息 返回provider近期获得的位置信息。

    Location loc = locMan.getLastKnownLocation(provider);
    
    7.补充 如有须要,我们能够将Location信息转化为GeoPoint。

    函数例如以下

    private GeoPoint getGeoByLocation(Location loc){
    GeoPoint gp = null;
    if(loc != null){
    double latitude = loc.getLatitude() * 1E6;
    double longitude = loc.getLongitude() * 1E6;
    gp = new GeoPoint((int)latitude, (int)longitude);
    }
    return gp;
    }
    
    以上文章转载自网络。对于上述信息已得到本地验证使用,对于综合使用的实例在 一文中已经实现。请移步查看。
  • 相关阅读:
    hibernate_0100_HelloWorld
    MYSQL子查询的五种形式
    JSF是什么?它与Struts是什么关系?
    nop指令的作用
    htmlparser实现从网页上抓取数据(收集)
    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the
    FCKeditor 在JSP上的完全安装
    Java遍历文件夹的2种方法
    充电电池和充电时间说明
    吃知了有什么好处
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7249480.html
Copyright © 2020-2023  润新知