现在很多app ,需要取位置信息,所以我也做了一个模块用来取位置信息;

   加入位置服务所需的权限:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

  //首先 获取 LocationManager ;

     final LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

  //创建监听;

          final LocationListener locationListener = new LocationListener() {

                

                // Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数

                @Override

                public void onStatusChanged(String provider, int status, Bundle extras) {

                    

                }

                

                // Provider被enable时触发此函数,比如GPS被打开

                @Override

                public void onProviderEnabled(String provider) {

                    Log.e("Map", "onProviderEnabled "  );

                }

                

                // Provider被disable时触发此函数,比如GPS被关闭

                @Override

                public void onProviderDisabled(String provider) {

                    

                }

                

                //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发

                @Override

                public void onLocationChanged(Location location) {

                    if (location != null) {   

                        Log.e("Map", "Location changed : Lat: "  

                        + location.getLatitude() + " Lng: "  

                        + location.getLongitude());

}

                }

            };

////判断使用哪种方式取位置信息;注册监听(最小时间间隔为1秒,最小距离间隔为0米)

if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))

            {

                //第一个参数,与取

                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0,locationListener);   

            }

            else

            {

                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);

            }

// 也可以取上次的定位信息

Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);   

            if(location != null){   

                latitude = location.getLatitude(); //经度   

                longitude = location.getLongitude(); //纬度

                

                Log.e("Map", "NETWORK_PROVIDER changed : Lat: "  

                + location.getLatitude() + " Lng: "  

                + location.getLongitude());

stopLister(this);

}

// 去掉监听;

private void stopLister(LocationListener listener) {

        if (locationManager != null) {

            locationManager.removeUpdates(listener);

        }

        locationManager = null;

具体代码见demo;

http://download.csdn.net/detail/q610098308/8858059

但现在有一个很严重的问题就是,一般用户可能不会开启GPS,这样的话,只能通过网络定位来获取位置信息,但大概手机是定制的手机,无法从网络取到位置信息;

所以我是通过第三方来取位置信息的

见demo;

http://download.csdn.net/detail/q610098308/8858067



android GPS 定位,取位置信息的更多相关文章

  1. Android GPS获取当前位置信息

    package com.example.gpstest; import org.apache.http.util.LangUtils; import android.content.Context; ...

  2. android GPS定位源码 地图显示位置源码 有用到的小伙伴自提取

    package com.jasgroup.cn.amhdeam; import java.io.IOException; import java.util.Iterator; import andro ...

  3. android gps定位LocationManager

    android location provider有: * LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫 ...

  4. Android GPS定位测试(附效果图)

    今天因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下.这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品.现在工作需要,重新拿出来修整 ...

  5. Android GPS定位测试(附效果图)

    今天因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下.这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品.现在工作需要,重新拿出来修整 ...

  6. Android GPS定位 获取经纬度

    移动 是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息. 获取位 ...

  7. iOS开发----地图与导航--定位和位置信息获取

    要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图 ...

  8. iOS定位和位置信息获取

    要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图 ...

  9. Android不间断上报位置信息-应用进程防杀指南

    没用的 除非加入白名单 或者用户自己设置锁屏后不被杀死 不然的话 锁屏5分钟以内app会被杀死,包 括所有的service. 说白了就是定位不要纯依赖gps,很多硬件为了省电,会对熄屏下的模块功能和运 ...

随机推荐

  1. angular中多个promise的合并处理

    all()方法 这个all()方法,可以把多个primise的数组合并成一个.当所有的promise执行成功后,会执行后面的回调.回调中的参数,是每个promise执行的结果.当批量的执行某些方法时, ...

  2. POJ 2217 Secretary

    Secretary Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID:  ...

  3. [luoguP3690] 【模板】Link Cut Tree

    传送门 处理路径 xor 和的时候可以维护子树 xor 和,先提取出路径,再把一个点 splay 到最上方,直接取子树 xor 和即可. 更新一个点权时可以先提取出根到这个点的路径,把这个点 spla ...

  4. hdu 2089 记忆化搜索写法(数位dp)

    /* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...

  5. 【Tomcat】Tomcat替换猫的图片

    参考:网页title上添加图片 直接替换Tomcat安装目录下ROOT下面的favicon.ico图标(名字与前面一样favicon.ico)

  6. RSYNC最简实施

    只是内网同步,故而可以省略很多安全方面的东东.不需要通过ssh,而是通过rsync协议.不需要用户名认证,保证只读. rsync用standalone的daemon方式,而不用service方式操作. ...

  7. zoj——2588 Burning Bridges

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...

  8. java并发操作

    项目中常用的java并发操作 一.java8新特性java并发流操作(结合纳姆达表达式) List<String> list = new ArrayList<>(); list ...

  9. MYSQL常用的性能指标

    (1) QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show  global status like 'Questio ...

  10. What are Unix swap (.swp) files?

    原文: http://www.networkworld.com/article/2931534/it-management/what-are-unix-swap-swp-files.html ---- ...