Android定位入门(3),基础实战部分

关于定位,
前面两个博客,主要介绍了 查看手机上的定位支持
和判断GPS是否开启,

而手机上的三种定位各有特色, 无源定位,网络定位,GPS定位
手机会根据目前的情况根据用户的要求开启的一个支持的定位方式
下面的案例就是,按用户需求的一个定位(应该筛选的是GPS)
这里写图片描述

主要功能在于,
Criteria 我们给定位管理器设置的我们的条件需求,
Location.requestLocationUpdates() 并加入更新地址的方法,

1.全局变量部分,Criteria才是重点的条件,其他保持一致

        private TextView text11;private LocationManager lm; //【位置服务】private Criteria ca;                //【条件】

2.主方法,设置条件属性,并加入更新
重点是最后一句代码
(注意! 更新最后的一个参数是个内部类哦)

 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text11=(TextView) findViewById(R.id.text11);lm=(LocationManager) getSystemService(Context.LOCATION_SERVICE);//【设置条件的属性】-----------------------------------------      ca=new Criteria();ca.setSpeedRequired(true);    //速度ca.setBearingRequired(true); // 方位ca.setAltitudeRequired(true); //高度ca.setAccuracy(Criteria.ACCURACY_FINE);                //精度,最好的ca.setPowerRequirement(Criteria.ACCURACY_LOW); //电池, 低功耗ca.setCostAllowed(true);        //费用String str=lm.getBestProvider(ca, true);//请求地址更新(提供者:GPS,记时时间:2秒,记录距离:1米,更新的事件)lm.requestLocationUpdates("gps ", 2000, 1, new Mydingwei());}

3.类部类承担着大任,其实看成 一个点击事件最好理解,和点击按钮的原理差不多的,

内部类实现了位置事件的接口,自动带入了4个方法,
前三个发送任何改动,都要调用更新的方法,获取到系统的参数
传个textview显示的面板上

class Mydingwei implements LocationListener {@Override//位置发生改变public void onLocationChanged(Location h) { update(h);}@Override//提供者失效public void onProviderDisabled(String h) {      update(lm.getLastKnownLocation(h) );}@Override//提供者激活public void onProviderEnabled(String h) {       }@Override//状态发生改变public void onStatusChanged(String arg0, int arg1, Bundle arg2) {       }
}private void update(Location ln){if(ln!=null){StringBuffer sb=new StringBuffer();sb.append("速度:"+ln.getSpeed());sb.append("精度:"+ln.getAccuracy());sb.append("高度 :"+ln.getAltitude());sb.append("方位 :"+ln.getBearing());sb.append("维度:"+ln.getLatitude());text11.setText(sb.toString());}else{text11.setText("没有找到定位信息");}}

总结感悟

  1. 了解定位类的使用方法
    (关于系统服务,硬件相关的服务都大同小异,经常用需要仔细看看)

  2. 判断GPS是否开启,
    (代码简单,实用性很强,牢记如何判断,如何进入系统,功能用途广)

  3. 定位条件设定
    (系统的GPS定位设置条件,实战强,效果慢,记住代码用法即可)

后续:

** 百度API定位效率比较高,项目中可能以第三方的新技术取代多学习第三方是知识,也是学习中的一大亮点特色的加分项
**学无止境,多学别人不知道的知识,从细节抓起,知识最值钱

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注