android通过手机本身来获取经纬度等信息(不使用第三方地图)

原创 2016年08月29日 17:18:25

首先我们先了解一下android自带的一个位置的类,这个类可以帮助我们实现获取目前手机所在的经纬度等一系列信息

1、android自带的一个位置类LocationManager

首先先定义一个LocationManager和一个当前正在使用的位置提供器(GPS还是网络)

private LocationManager locationManager;
private String locationProvider;

然后获取位置服务
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

然后获取所有可以用的位置提供器,并检测当前是否有可用的位置提供器

List<String> providers = locationManager.getProviders(true);
if (providers.contains(LocationManager.GPS_PROVIDER)) {
    //如果是GPS
    locationProvider = LocationManager.GPS_PROVIDER;
} else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
    //如果是Network
    locationProvider = LocationManager.NETWORK_PROVIDER;
} else {
    Toast.makeText(this,"没有可用的位置提供器",Toast.LENGTH_SHORT);
    return;
}

如果有位置提供器,那么就获取Location

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return;
}
Location location = locationManager.getLastKnownLocation(locationProvider);
if (location != null) {
    //不为空,显示地理位置经纬度
    showLocation(location);
}
//监视地理位置变化
locationManager.requestLocationUpdates(locationProvider, 3000, 1, locationListener);

接下来是LocationListern监听器:

/**
 * LocationListern监听器
 * 参数:地理位置提供器、监听位置变化的时间间隔、位置变化的距离间隔、LocationListener监听器
 */

LocationListener locationListener = new LocationListener() {

    @Override
    public void onStatusChanged(String provider, int status, Bundle arg2) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    @Override
    public void onLocationChanged(Location location) {
        //如果位置发生变化,重新显示
        showLocation(location);
    }
};

最后是一个打印的方法showLocation:

private void showLocation(Location location) {
    Log.debug(“定位成功------->”,"location------>" + "经度为:" + location.getLatitude() + "\n纬度为" + location.getAltitude());
}

到此就是不使用第三方地图来获取当前经纬度

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

android使用百度地图定位(获取当前经纬度和地址信息)

首先,把你申请的key配置到appliation。

android下利用高德地图获取经纬度等定位信息

第 1 步,配置AndroidManifest.xml 首先,声明Service组件 请在application标签中声明service组件,每个app拥有自己单独的定位ser...

Android 如何获取手机经纬度和地理位置信息

最近做项目需要用到获取手机地理位置信息用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况(在室外能获取到位置信息,但在...

Android小功能获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

// 获取Android手机中SD卡存储信息 获取剩余空间  public void getSDCardInfo() {      // 在manifest.xml文件中要添加 &...
  • Aloh_A
  • Aloh_A
  • 2015-11-25 18:16
  • 1326

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息...

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://2402766.blog.51cto.com/2392766/1080837 ...

根据两个经纬度点调用百度地图应用查询路线 适用android或者ios中及网页浏览(手机网页同样适用)

Intent intent = null; try {// 如果有安装百度地图 就启动百度地图 StringBuffer sbs = new StringBuffer(); sbs.a...

Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址

上篇把界面画出来了, 接下来就是显示里面的功能了,那这篇内容就比较丰富了。   主要有这么几道菜:   1、在地图上弹出泡泡显示信息,并且能相应泡泡的点击时间 2、自动定位当前位置(也就是我...

Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址

上篇把界面画出来了, 接下来就是显示里面的功能了,那这篇内容就比较丰富了。   主要有这么几道菜:   1、在地图上弹出泡泡显示信息,并且能相应泡泡的点击时间 2、自动定位当前位置(也就是我...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)