Android LocationManager,报上你的经纬度!

Android LocationManager定位获取经纬度 项目需要,查找了很久的文件,起初用了公司的红米手机测试,一直不成功,getLastKnownLocation(provider)返回一直为空,后来偶然看到一篇文章说国内安卓手机是不支持android自带的定位API locationManager的。 国内安卓手机locationManager.getLastKnownLocation(locationProvider)为null,原因是国内的手机厂商对android系统进行了改动,将谷歌的服务包删除,上述结果就是讲网络定位服务包缺少的结果,最明显的就.. 阅读详情

默说:现在在 Android 开发的时候需要获取用户的地理位置已经愈发的简单,各种地图 SDK 都提供精准的定位方法。不过如果你的需求是只需模糊定位到用户的城市,那样的话,系统 API 完全能满足你的需求,这时候再去集成一个地图 SDK 就感觉过重了。网上使用系统 API 进行定位的文章都比较早了,而且 Android 6.0 版本加入了危险权限的动态验证,所以基本没有个工具类能直接拿来就用的,那我只能再组装个轮子给大家使用了。没啥技术含量,大牛轻拍。

动图镇楼

动图镇楼

Android 定位管家:LocationManager

基本使用
  1. 获取 LocationManager
  2. 判断定位服务(GPS,WIFI,基站)是否可用
  3. 设置定位监听,获取经纬度
public void initLocation(Context context){
  // 获取 LocationManager
  mLocationManager = (LocationManager) context
                .getSystemService(Context.LOCATION_SERVICE);
  // 判断网络定位是否可用,可替换成 GPS 定位。
  if (mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
            mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
                    0, 0, new LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    //位置发生改变时回调该函数
                    location.getLatitude();//纬度
                    location.getLongitude();//经度
                }

                @Override
                public void onStatusChanged(String provider, int status, Bundle extras) {
                    //状态改变回调
                    //provider:定位器名称(NetWork,Gps等)
                    //status: 3中状态,超出服务范围,临时不可用,正常可用
                    //extras: 包含定位器一些细节信息
                }

                @Override
                public void onProviderEnabled(String provider) {
                    //定位开启回调
                }

                @Override
                public void onProviderDisabled(String provider) {
                    //定位关闭回调
                }
            });
        } 

}
所需权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

基本上,使用了这几个函数就能获取到经纬度了,是不是超级简单,这里使用网络进行定位是因为其定位速度比较快,且在室内也可以使用,虽然精度没有 gps 定位的高,但是我们的精度只到城市级别,所以这点误差完全可以接受。

定位工具类封装:LocationUtils

LocationUtils类代码:

package cn.motalks.mtdc.utils;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.util.Log;

/**
 * Created by MoLin on 16/9/25.
 */
public class LocationUtils {

    private volatile static LocationUtils uniqueInstance;
    private LocationHelper mLocationHelper;
    private MyLocationListener myLocationListener;
    private LocationManager mLocationManager;
    private Context mContext;

    private LocationUtils(Context context) {
        mContext = context;
        mLocationManager = (LocationManager) context
                .getSystemService( Context.LOCATION_SERVICE );
    }

    //采用Double CheckLock(DCL)实现单例
    public static LocationUtils getInstance(Context context) {
        if (uniqueInstance == null) {
            synchronized (LocationUtils.class) {
                if (uniqueInstance == null) {
                    uniqueInstance = new LocationUtils( context );
                }
            }
        }
        return uniqueInstance;
    }

    /**
     * 初始化位置信息
     * @param locationHelper 传入位置回调接口
     */
    public void initLocation(LocationHelper locationHelper) {
        Location location = null;
        mLocationHelper = locationHelper;
        if (myLocationListener == null) {
            myLocationListener = new MyLocationListener();
        }
        // 需要检查权限,否则编译报错,想抽取成方法都不行,还是会报错。只能这样重复 code 了。
        if ( Build.VERSION.SDK_INT >= 23 &&
                ActivityCompat.checkSelfPermission( mContext, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
                ActivityCompat.checkSelfPermission( mContext, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return  ;
        }
        if (mLocationManager.isProviderEnabled( LocationManager.NETWORK_PROVIDER )) {
            location = mLocationManager.getLastKnownLocation( LocationManager.NETWORK_PROVIDER );
            Log.e("MoLin", "LocationManager.NETWORK_PROVIDER");
            if (location != null) {
                locationHelper.UpdateLastLocation(location);
            }
            mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
                    0, 0, myLocationListener);
        } else {
            Log.e("MoLin", "LocationManager.GPS_PROVIDER");
            location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if (location != null) {
                locationHelper.UpdateLastLocation(location);
            }
            mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                    1000, 50, myLocationListener);
        }
    }

    private class MyLocationListener implements LocationListener {
        //定位服务状态改变会触发该函数
        @Override
        public void onStatusChanged(String provider, int status,
                                    Bundle extras) {
            Log.e("MoLin", "onStatusChanged!");
            if (mLocationHelper != null) {
                mLocationHelper.UpdateStatus(provider, status, extras);
            }
        }
        // 定位功能开启时会触发该函数
        @Override
        public void onProviderEnabled(String provider) {
            Log.e("MoLin", "onProviderEnabled!" + provider);
        }
        // 定位功能关闭时会触发该函数
        @Override
        public void onProviderDisabled(String provider) {
            Log.e("MoLin", "onProviderDisabled!" + provider);
        }
        // 当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
        @Override
        public void onLocationChanged(Location location) {
            Log.e("MoLin", "onLocationChanged!");
            if (mLocationHelper != null) {
                mLocationHelper.UpdateLocation(location);
            }
        }
    }
    // 移除定位监听
    public void removeLocationUpdatesListener() {
        // 需要检查权限,否则编译不过
        if ( Build.VERSION.SDK_INT >= 23 &&
                ActivityCompat.checkSelfPermission( mContext, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
                ActivityCompat.checkSelfPermission( mContext, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return  ;
        }
        if (mLocationManager != null) {
            mLocationManager.removeUpdates(myLocationListener);
        }
    }
}

LocationUtils类的使用

这里的动态权限管理使用了都有米同学封装的 EasyPermissionsEx 类。(这个类下面会详细介绍)

package cn.motalks.mtdc.ui;

import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.GpsStatus;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import cn.motalks.mtdc.R;
import cn.motalks.mtdc.utils.EasyPermissionsEx;
import cn.motalks.mtdc.utils.LocationHelper;
import cn.motalks.mtdc.utils.LocationUtils;

/**
 * Created by MoLin on 16/9/25.
 */
public class LocationTest2Activity extends Activity {

    private TextView mLatitudeView;
    private TextView mLongtitudeView;
    private TextView mWeatherView;
    private Button mButton;
    private static final int PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION = 1;
    private static final int RC_SETTINGS_SCREEN = 2;
    private String[] mNeedPermissionsList = new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.location_text_activity);
        initView();
        super.onCreate(savedInstanceState);
    }

    private void initView() {
        mLatitudeView = (TextView) findViewById(R.id.location_latitude);
        mLongtitudeView = (TextView) findViewById(R.id.location_longtitude);
        mWeatherView = (TextView) findViewById(R.id.weather_info_tv);
        mButton = (Button) findViewById(R.id.location_button);

        mButton.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 使用了 EasyPermissionsEx 类来管理动态权限配置
                if (EasyPermissionsEx.hasPermissions(LocationTest2Activity.this, mNeedPermissionsList)) {
                    initLocation();
                } else {
                    EasyPermissionsEx.requestPermissions(LocationTest2Activity.this, "需要定位权限来获取当地天气信息", PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION, mNeedPermissionsList);
                }
            }
        });
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    Log.e("MoLin", "已获取权限!");
                    initLocation();
                } else {
                    if (EasyPermissionsEx.somePermissionPermanentlyDenied(this, mNeedPermissionsList)) {
                        EasyPermissionsEx.goSettings2Permissions(this, "需要定位权限来获取当地天气信息,但是该权限被禁止,你可以到设置中更改"
                                , "去设置", RC_SETTINGS_SCREEN);
                    }
                }
            }
            break;

        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RC_SETTINGS_SCREEN) {
            Toast.makeText(this, "settings", Toast.LENGTH_LONG).show();
        }
    }

    private void initLocation() {
        LocationUtils.getInstance(LocationTest2Activity.this).initLocation( new LocationHelper() {
            @Override
            public void UpdateLocation(Location location) {
                Log.e("MoLin", "location.getLatitude():" + location.getLatitude());
                mLatitudeView.setText(location.getLatitude() + "");
                mLongtitudeView.setText(location.getLongitude() + "");
            }

            @Override
            public void UpdateStatus(String provider, int status, Bundle extras) {
            }

            @Override
            public void UpdateGPSStatus(GpsStatus pGpsStatus) {

            }

            @Override
            public void UpdateLastLocation(Location location) {
                Log.e("MoLin", "UpdateLastLocation_location.getLatitude():" + location.getLatitude());
                mLatitudeView.setText(location.getLatitude() + "");
                mLongtitudeView.setText(location.getLongitude() + "");
            }
        });
    }

    @Override
    protected void onDestroy() {
        // 在页面销毁时取消定位监听
        LocationUtils.getInstance(LocationTest2Activity.this).removeLocationUpdatesListener();
        super.onDestroy();
    }
}

动态权限配置

在Android 6.0及其以上版本上,系统在APP安装时授权所有普通权限,危险权限需要在使用时动态让用户授权。这使得Android的权限管理更加灵活,用户可以根据需要在设置应用中对应用的各个危险权限授予不同的权限。Android系统的权限管理不知道被多少人吐槽过,这一改进无疑是加分项。

危险权限介绍

下图是所有危险权限的列表,在使用时需要动态让用户授权。每个对应的危险权限都会对应一个权限组,若你申请了一个危险权限,得到用户允许后即可获得对应权限组的其他权限。例如你在申请了读短信的权限,用户点击了允许,那么你再申请获取写短信的权限时,系统会立即授予而不会再弹出对话框要求用户确认。

危险权限

动态权限管理工具类

Google 之前在 github 上开源了一个 EasyPermissions ,但是会在解释为什么需要权限的时候弹出一个对话框阻塞了用户操作,并且在用户勾选”禁止后不再询问”后依然会弹出对话框请求权限,用户体验不太好。EasyPermissionsEx 一个国人基于 EasyPermissions 封装的类库,使用说明见《解读Android官方开发指导 - 运行时权限》。

Demo GitHub 地址

https://github.com/apkcoder/AndroidLocationUtils

三胖:看图说话

三胖:可以报上你的经纬度么?

本文首发于 MoTalks.cn

Android LocationManager定位之获取经纬度以及城市信息 **Android LocationManager定位之获取经纬度**在安卓开发中有是需要记录用户位置用作用大数据分析,这些统计仅仅需要经纬度以及城市信息,不需要其他的信息,如果接入第三方定位sdk就会显得大材小用,使得程序的整个功能架构显得有些冗余,在不接入第三方定位SDK的前提下可以使用安卓原生的定位API(LocationManager,Geocoder),通过LocationManager可 阅读详情

相关推荐

使用Android 原生LocationManager获取经纬度

可以看成是正常的GPS位置,在google earth上全部坐标,谷歌地图上除中国以外的坐标均为这个标准,但是谷歌地图的中国坐标使用的是GCJ-02标准,博主这里就遇到同一个地方,小米可以通过gps获取到数据,但一加的两个手机,都无法通过gps获取到经纬度,故只能先从网络获取经纬度。GPS获得的经纬度所用的坐标系和谷歌地图、百度地图上的坐标系是不同的,GPS硬件获得的经纬度是WGS-84标准,国际通用,这些都是硬件获取经纬度在地图上指示不对的原因,网上有免费做转换的网站,一些厂商可能会阉割掉谷歌服务。

以后会多把工作中总结的知识、问题处理思路和方法通过博客分享出来,欢迎大家关注和共同探讨! 1330

LocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)总是为false

============问题描述============ packagecom.jt.classlibrary; importjava.util.List; importandroid.app.Service; importandroid.content.BroadcastReceiver; imp...

weixin_30773135的博客 1701

Android获取经纬度的最佳实现方式

Android中获取定位信息的方式有很多种,系统自带的LocationManager,以及第三方厂商提供的一些定位sdk,都能帮助我们获取当前经纬度,但第三方厂商一般都需要申请相关的key,且调用量高时,还会产生资费问题。这里采用LocationManager + FusedLocationProviderClient 的方式进行经纬度的获取,以解决普通场景下获取经纬度和经纬度转换地址的功能。

程序员吗? 6836

基于LocationManager的定位工具类

利用LocationManager编写一个定位工具类,应用方便。

langxm2006的专栏 1052

Android原生方式获取经纬度和城市信息,android综合面试

希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。这里放一下资料获取方式:GitHub好了~如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。

m0_60635176的博客 1216

GEOSHIELD:分布式CPS的拜占庭容错与安全防护技术

分布式系统在关键基础设施(如轨道交通、智能电网)中面临网络延迟和恶意节点的双重挑战。拜占庭容错(BFT)技术通过算法保证系统在存在故障节点时仍能达成一致,是保障系统安全的核心机制。GEOSHIELD创新性地结合概率化网络延迟测量和TGS动态信任评分,实现了不依赖可信硬件的拜占庭 resilience。该技术通过建立节点行为的信用档案,动态识别恶意行为,在保证安全性的同时最大化系统可用性。实验证明,即使在自适应攻击策略下,GEOSHIELD仍能保持系统95.6%的正常运行时间,为CPS系统提供了可靠的安全防护

weixin_31766003的博客 346

106.android简单的GPS实时定位

//定位权限、网络权限: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permissi...

曹二少的博客 3064

HFSS仿真的后处理结果,如何根据天线表面的电流密度分布对天线进行优化?

在HFSS仿真中,天线表面的Jsurf​是最直观、最有价值的诊断工具之一。它不仅告诉你天线“能不能工作”,还能告诉你“为什么工作”以及“哪里出了问题”。

degogmy的博客 1158

安卓中实现LocationManager定位服务

一. LocationManager: LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,比如查询上一个已知位置,定期更新设备的地理位置,或者当设备进入给定地理位置附近时,触发应用指定意图等; (A). 使用LocationManager需要以下过程; 1.获取LocationManager,它不能直接实例化: LocationManager lm = (LocationManager) getSystemService(Context.LOCAT

weixin_44548405的博客 5719

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理安装python下载python安装包开始安装安装pycharm社区版下载pycharm开始安装如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装python 使用pycharm学习opencv应该是最简单的了,对新手比较友好,

steveqobs 7707

从GitHub到海浪模拟:手把手教你配置WAVEWATCHⅢ 6.07.0的完整开发与测试环境

本文详细指导如何在Ubuntu系统中配置WAVEWATCHⅢ 6.07.0的开发与测试环境,涵盖虚拟机设置、依赖安装、源码编译及案例验证的全流程。通过步骤化教程,帮助科研人员快速搭建高效的海浪模拟平台,提升海洋数值模拟的研究效率。

weixin_42568801的博客 324

工具类之LocationUtils(定位工具类)

无须引入第三方定位,单纯依赖v4包,如果只是需要简单的定位,那么这份工具类可以很好地帮助到你,老司机不多说,辛酸的话语都留在了代码里了,上效果演示 LocationDemo Demo牛逼地显示是当时查内存泄漏查吐血的功劳,具体坑可以查看相关Demo代码,下面开始开车,嘟嘟嘟嘟~ 站点 定位相关→LocationUtils.java→Demo isGpsEn

不二菜菜子的博客 3894

STM32驱动WS2812B实现音乐频谱可视化系统

本文详细介绍了基于STM32驱动WS2812B灯带实现音乐频谱可视化系统的设计与实现。通过FFT算法实时分析音频信号,将频谱映射到炫彩灯光控制系统,结合PWM和DMA技术实现低延迟响应。系统支持多模式切换和动态亮度调节,适用于创意灯光秀和智能家居场景。

weixin_29171129的博客 302

Android开发:LocationManager获取经纬度及定位过程(附demo)

在Android开发当中,经常需要用到定位功能,尤其是依赖于地理位置功能的应用,很多人喜欢使用百度地图,高德地图提供的sdk,开放API,但是在仅仅需要经纬度,或者城市,街道地址等信息,并不需要提供预览地图,地图界面的应用中,这时,不需要使用百度地图,高德地图,这样做只会增加apk的体积,怎么办呢? 其实LocationManager,Geocoder这些Android API给我们提供的这

MichaelX的专栏 2万+

STM32与FreeRTOS:基于TIM6的高精度系统时间获取实践

本文详细介绍了在STM32与FreeRTOS环境下,基于TIM6定时器实现高精度系统时间获取的实践方法。通过复用FreeRTOS的TIM6硬件资源,开发者可以高效获取毫秒级和微秒级系统时间,同时解决时间溢出和中断处理等关键问题。文章还提供了CubeMX配置技巧、代码实现及性能优化建议,适用于嵌入式系统开发中的精确时间管理需求。

weixin_29169505的博客 357

从零到一:ESP32与豆包大模型的RTC连续对话实现指南

文本实现ESP32S3 SparkBot与豆包大模型的RTC连续对话

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 4364

【Android】基于 LocationManager 原生实现定位打卡

最近公司有个新需求,想要用定位进行考勤打卡,在距离打卡地一定范围内才可以进行打卡。本文将借鉴 RxTool 的 RxLocationUtils 的定位工具类,实现定位打卡功能,界面仿照如下图所示的钉钉考勤打卡。定位功能这里有两种方案去实现: 第一种是利用安卓原生的LocationManager去获取经纬度。 第二种就是使用第三方的SDK,如百度地图SDK、高德地图SDK,第三方SDK需要导入Jar包。 如果想要地图界面或者高精度定位可以选择使用第三方SDK

full courage的博客 5457

论文工具——写论文好用的绘图工具(甘特图+流程图+网络模型图+泳道图)

* 在写HiFi-GAN论文的代码阅读过程中,我发现仅仅通过文字来描述网络结构,不够详细,所以想绘制出网络结构图,更加具象化的描述出网络结构。想去花了,才发现之前都是通过在线绘图网站画的,费时费力,所以想找一些专门的网站化出比较规范并且高质量的图。一方面是为了方便讲解,提高论文的质量,另外一方面也是为了以后写论文打下良好的基础。 * 这篇文章会根据我以前的画图经验展开,以前是使用绘图软件,手动绘图。后来,看到了其他的方法,但是需要写一些代码,或者需要安装特定的软件,投入成本太大,就没有学。所以,本文分享的工

Blackoutdragon的博客 1万+

Android LocationManager 获取经纬度和卫星信息

文章目录一、定位介绍二、代码1、实例化LocationManager2、处理运行时权限3、开始请求定位4、定位监听器5、更新定位三、Demo下载 一、定位介绍 在不使用第三方地图SDK的情况下,也可以借助Android 本身的定位API来实现相关地理位置功能更,官方介绍见这里(需要翻墙):https://developer.android.com/reference/android/locatio...

xunming的专栏 7060

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

安卓(android)使用GPS,获取经纬度

android获取经纬度,有这个两个类需要用:1、LocationManager位置管理器2、Location位置类第一步:获取LocationManager实例locationManager = (LocationManager) mContext.getSystemService( Context.LOCATION_SERVICE );第二步:获取位置提供器(GPS或是net)List&lt;...

JUSTYiSheng的博客 8772

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android笔记之使用LocationManager获取经纬度

LocationManager.getLastKnownLocation(String provider)有可能返回null,概率还挺高 findViewById(R.id.llMain).setOnClickListener(new View.OnClickListener() { @Override public voi...

weixin_33901926的博客 497

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android LocationManager 使用

前一阵子,老大安排我写一个GPS的程序。大致就是用Android 提供的Location 服务,来获得当前的位置信息和卫星信息。这里就用到了LocationManager类,要使用它,先得获得系统所提供的location_serviceprivate LocationManager locationManager;locationManager = (LocationManager)get

saint_bxg的专栏 2万+

android 获取经纬度的三种方法,Android获取经纬度

获取经纬度一般有两种方法通过集成第三方(百度、高德)来获取通过Android自带的API来获取那么今天我就来写一下第二种通过Android自带的API来获取经纬度的方法:首先经纬度需要用户授权,权限如下第一步 获取LocationManager对象,代码如下// 获取位置服务String serviceName = Context.LOCATION_SERVICE;// 调用getSystemS...

weixin_29335033的博客 9193

android中获取位置(一)--利用locationManager获取当前经纬度信息

android中locationManager是用于获取设备当前位置信息,使用时需要从系统获取一个位置服务:locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);这样就可以获取设备当前的位置信息了:String provider = locationManager.NETWORK_PROVIDER

z446372168的博客 1821

android 获取当前城市demo,Android开发:LocationManager获取经纬度及定位过程(附demo)(示例代码)...

在Android开发其中。常常须要用到定位功能,尤其是依赖于地理位置功能的应用。非常多人喜欢使用百度地图,高德地图提供的sdk。开放API,可是在只须要经纬度,或者城市,街道地址等信息。并不须要提供预览地图。地图界面的应用中。这时,不须要使用百度地图。高德地图。这样做只会添加apk的体积。怎么办呢?事实上LocationManager,Geocoder这些Android API给我们提供的这些类就...

weixin_42507981的博客 913
上一篇: 当ListView有Header时,onItemClick里的position不正确
下一篇: Manifest merger failed with multiple errors, see logs 问题处理
极客公园
博客等级 码龄15年 45粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值