欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程实现GPS位置获取的方法

程序员文章站 2022-08-08 10:03:20
本文实例讲述了android编程实现gps位置获取的方法。分享给大家供大家参考,具体如下: public class gpsinfoservice { pr...

本文实例讲述了android编程实现gps位置获取的方法。分享给大家供大家参考,具体如下:

public class gpsinfoservice {
  private static gpsinfoservice minstance;
  private locationmanager locationmanager;//定位服务
  private gpsinfoservice(context context) {
    // todo auto-generated constructor stub
    locationmanager = (locationmanager) context.getsystemservice(context.location_service);
  }
  public static gpsinfoservice getinstance(context context){
    if(minstance == null){
      minstance = new gpsinfoservice(context);
    }
    return minstance;
  }
  //注册定位监听
  public void registenerlocationchangelistener(){
    //得到所有的定位服务
//   list<string> providers = locationmanager.getallproviders();
//   for(string provider:providers){
//     log.i("i", provider);
//   }
    //查询条件
    criteria criteria = new criteria();
    //定位的精准度
    criteria.setaccuracy(criteria.accuracy_fine);
    //海拔信息是否关注
    criteria.setaltituderequired(false);
    //对周围的事情是否进行关心
    criteria.setbearingrequired(false);
    //是否支持收费的查询
    criteria.setcostallowed(true);
    //是否耗电
    criteria.setpowerrequirement(criteria.power_low);
    //对速度是否关注
    criteria.setspeedrequired(false);
    //得到最好的定位方式
    string provider = locationmanager.getbestprovider(criteria, true);
    //注册监听
    locationmanager.requestlocationupdates(provider, 60000, 0, getlistener());
  }
  //取消监听
  public void unregisterlocationchangelistener(){
    locationmanager.removeupdates(getlistener());
  }
  private mylocationlistener listener;
  //得到定位的监听器
  private mylocationlistener getlistener(){
    if(listener == null){
      listener = new mylocationlistener();
    }
    return listener;
  }
  //得到上个地理位置
  public string getlastlocation(){
    return sp.getstring("last_location", "");
  }
  private final class mylocationlistener implements locationlistener{
    //位置的改变
    public void onlocationchanged(location location) {
      // todo auto-generated method stub
      double latitude = location.getlatitude();//维度
      double longitude = location.getlongitude();//经度
      string last_location = "jingdu: " + longitude + ",weidu:" + latitude;
      editor editor = sp.edit();
      editor.putstring("last_location", last_location);
      editor.commit();
    }
    //gps卫星有一个没有找到
    public void onstatuschanged(string provider, int status, bundle extras) {
      // todo auto-generated method stub
    }
    //某个设置被打开
    public void onproviderenabled(string provider) {
      // todo auto-generated method stub
    }
    //某个设置被关闭
    public void onproviderdisabled(string provider) {
      // todo auto-generated method stub
    }
  }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》、《android视图view技巧总结》、《android操作json格式数据技巧总结》、《android开发入门与进阶教程》及《android资源操作技巧汇总

希望本文所述对大家android程序设计有所帮助。