zoukankan      html  css  js  c++  java
  • Android中通过GPS或NetWork获取当前位置的经纬度

    今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能。要实现该功能要用到Android Framework 中的 LocationManager 类。下面我就直接贴上主要的代码说明如何实现通过GPS或NetWork来获取实时位置的经纬度。

    [c-sharp] view plaincopy
    1. private double latitude=0.0;  
    2. private double longitude =0.0;  
    3.   
    4. LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);  
    5.         if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){  
    6.             Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);  
    7.             if(location != null){  
    8.                 latitude = location.getLatitude();  
    9.                 longitude = location.getLongitude();  
    10.                 }  
    11.         }else{  
    12.             LocationListener locationListener = new LocationListener() {  
    13.                   
    14.                 // Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数  
    15.                 @Override  
    16.                 public void onStatusChanged(String provider, int status, Bundle extras) {  
    17.                       
    18.                 }  
    19.                   
    20.                 // Provider被enable时触发此函数,比如GPS被打开  
    21.                 @Override  
    22.                 public void onProviderEnabled(String provider) {  
    23.                       
    24.                 }  
    25.                   
    26.                 // Provider被disable时触发此函数,比如GPS被关闭   
    27.                 @Override  
    28.                 public void onProviderDisabled(String provider) {  
    29.                       
    30.                 }  
    31.                   
    32.                 //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发   
    33.                 @Override  
    34.                 public void onLocationChanged(Location location) {  
    35.                     if (location != null) {     
    36.                         Log.e("Map""Location changed : Lat: "    
    37.                         + location.getLatitude() + " Lng: "    
    38.                         + location.getLongitude());     
    39.                     }  
    40.                 }  
    41.             };  
    42.             locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);     
    43.             Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);     
    44.             if(location != null){     
    45.                 latitude = location.getLatitude(); //经度     
    46.                 longitude = location.getLongitude(); //纬度  
    47.             }     
    48.         }  

    同时别忘了在AndroidManifest.xml文件中加入如下权限:

        <!-- 连接互联网Internet权限 -->
        <uses-permission android:name="android.permission.INTERNET" />
        <!-- GPS定位权限 -->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    说明:本人在真机中测试上述的功能,可以正确获取得了移动终端实时位置的经纬度。

    转:http://blog.csdn.net/cjjky/article/details/6557561

  • 相关阅读:
    eth0&nbsp;no&nbsp;such&nbsp;device(reload)
    wince驱动开发入门
    如何在Linux中添加新的系统调用
    嵌入式Linux启动优化手记2&nbsp;U…
    关于uboot的一些优化
    Yaffs2根文件系统制作
    kernel下制作动态logo
    linux&nbsp;dev/dsp&nbsp;声卡学习笔记
    【JDK8】Java8 优雅的异步调用API CompletableFuture
    每周总结:2019年12月第5周
  • 原文地址:https://www.cnblogs.com/jiezzy/p/3674964.html
Copyright © 2011-2022 走看看