Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1618|回复: 0

[默认分类] Android GPS 定位的实现(1)

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-16 10:00:04 | 显示全部楼层 |阅读模式
    今天弄了一个多小时,写了一个GPS获取地理位置代码的小例子,包括参考了网上的一些代码,并且对代码进行了一些修改,希望对大家的帮助。具体代码如下:  要实用Adnroid平台的GPS设备,首先需要添加上权限,所以需要添加如下权限:   
      

    1.   
    2.    
    3.    <
    4.    uses
    5.    -
    6.    permission android:name
    7.    =
    8.    "
    9.    android.permission.ACCESS_FINE_LOCATION
    10.    "
    11.    ></
    12.    uses
    13.    -
    14.    permission
    15.    >
    16.   
    复制代码


      
    具体实现代码如下:
    首先判断GPS模块是否存在或者是开启:
      



    代码
      
    1.    
    2.    
    3.     private
    4.      
    5.     void
    6.      openGPSSettings() {
    7. LocationManager alm
    8.     =
    9.      (LocationManager)
    10.     this
    11.    
    12. .getSystemService(Context.LOCATION_SERVICE);
    13.     if
    14.      (alm
    15. .isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
    16. Toast.makeText(
    17.     this
    18.     ,
    19.     "
    20.     GPS模块正常
    21.     "
    22.     , Toast.LENGTH_SHORT)
    23. .show();
    24.     return
    25.     ;
    26. }
    27. Toast.makeText(
    28.     this
    29.     ,
    30.     "
    31.     请开启GPS!
    32.     "
    33.     , Toast.LENGTH_SHORT).show();
    34. Intent intent
    35.     =
    36.      
    37.     new
    38.      Intent(Settings.ACTION_SECURITY_SETTINGS);
    39. startActivityForResult(intent,
    40.     0
    41.     );
    42.     //
    43.     此为设置完成后返回到获取界面
    44.    
    45.    
    46. }
    47.    
    复制代码

      

      
    如果开启正常,则会直接进入到显示页面,如果开启不正常,则会进行到GPS设置页面:
    获取代码如下:
      



    代码
      
    1.    
    2.    
    3.     private
    4.      
    5.     void
    6.      getLocation()
    7. {
    8.     //
    9.      获取位置管理服务
    10.    
    11.      LocationManager locationManager;
    12. String serviceName
    13.     =
    14.      Context.LOCATION_SERVICE;
    15. locationManager
    16.     =
    17.      (LocationManager)
    18.     this
    19.     .getSystemService(serviceName);
    20.     //
    21.      查找到服务信息
    22.    
    23.      Criteria criteria
    24.     =
    25.      
    26.     new
    27.      Criteria();
    28. criteria.setAccuracy(Criteria.ACCURACY_FINE);
    29.     //
    30.      高精度
    31.    
    32.      criteria.setAltitudeRequired(
    33.     false
    34.     );
    35. criteria.setBearingRequired(
    36.     false
    37.     );
    38. criteria.setCostAllowed(
    39.     true
    40.     );
    41. criteria.setPowerRequirement(Criteria.POWER_LOW);
    42.     //
    43.      低功耗
    44.    
    45.    
    46. String provider
    47.     =
    48.      locationManager.getBestProvider(criteria,
    49.     true
    50.     );
    51.     //
    52.      获取GPS信息
    53.    
    54.      Location location
    55.     =
    56.      locationManager.getLastKnownLocation(provider);
    57.     //
    58.      通过GPS获取位置
    59.    
    60.      updateToNewLocation(location);
    61.     //
    62.      设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,这样写主要为了方便)或最小位移变化超过N米
    63.    
    64.      locationManager.requestLocationUpdates(provider,
    65.     100
    66.      
    67.     *
    68.      
    69.     1000
    70.     ,
    71.     500
    72.     ,
    73. locationListener);
    74.    
    75.    
    76.      }
    77.    
    复制代码

      

    到这里就可以获取到地理位置信息了,但是还是要显示出来,那么就用下面的方法进行显示:
      




    代码
      
    1.    
    2.    
    3.     private
    4.      
    5.     void
    6.      updateToNewLocation(Location location) {
    7. TextView tv1;
    8. tv1
    9.     =
    10.      (TextView)
    11.     this
    12.     .findViewById(R.id.tv1);
    13.     if
    14.      (location
    15.     !=
    16.      
    17.     null
    18.     ) {
    19.     double
    20.      latitude
    21.     =
    22.      location.getLatitude();
    23.     double
    24.      longitude
    25.     =
    26.      location.getLongitude();
    27. tv1.setText(
    28.     "
    29.     维度:
    30.     "
    31.      
    32.     +
    33.      latitude
    34.     +
    35.      
    36.     "
    37.     \n经度
    38.     "
    39.      
    40.     +
    41.      longitude);
    42. }
    43.     else
    44.      {
    45. tv1.setText(
    46.     "
    47.     无法获取地理信息
    48.     "
    49.     );
    50. }
    51. }
    52.    
    复制代码

      

      

    这样子就能获取到当前使用者所在的地理位置了,至少如何下地图上实现,在下面将进行获取,并显示出来!对参考代码的人表示感谢!
      
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 08:24 , Processed in 0.345801 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表