看注释解析基本上OK了。

布局,权限:

<!--用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!--获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!--用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!--用于访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET"></uses-permission><!--用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<meta-data android:name="com.amap.api.v2.apikey" android:value="你的key"/>
<service android:name="com.amap.api.location.APSService"></service>
<com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/my_location"></com.amap.api.maps.MapView>
public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener {private AMap aMap;private OnLocationChangedListener  mListener;private MapView mMapView;//声明AMapLocationClient类对象public AMapLocationClient mapLocationClient;//声明AMapLocationClientOption对象public AMapLocationClientOption mapLocationClientOption;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);getSupportActionBar().hide();setContentView(R.layout.activity_main);mMapView = (MapView)findViewById(R.id.map);//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),实现地图生命周期管理mMapView.onCreate(savedInstanceState);if (aMap==null){aMap = mMapView.getMap();}aMap.setLocationSource(this);// 设置定位监听aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是falseaMap.setMyLocationEnabled(true);// 设置定位的类型为定位模式 ,可以由定位、跟随或地图根据面向方向旋转几种aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();mapLocationClient.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity执行onResume时执行mMapView.onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity执行onPause时执行mMapView.onPause (),实现地图生命周期管理mMapView.onPause();}@Overrideprotected void onStop() {super.onStop();mapLocationClient.stopLocation();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),实现地图生命周期管理mMapView.onSaveInstanceState(outState);}@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (aMapLocation!=null){if (aMapLocation.getErrorCode()==0){mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点StringBuilder stringBuilder = new StringBuilder();//定位成功回调信息,设置相关消息int type = aMapLocation.getLocationType();String address = aMapLocation.getAddress();stringBuilder.append(type+address);Toast.makeText(this,stringBuilder.toString(),Toast.LENGTH_SHORT).show();}else {//显示错误信息ErrCode是错误码,errInfo是错误信息,详见下方错误码表。Log.i("erro info:",aMapLocation.getErrorCode()+"---"+aMapLocation.getErrorInfo());}}}//激活定位@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {mListener = onLocationChangedListener;if (mapLocationClient==null){//初始化AMapLocationClient,并绑定监听mapLocationClient = new AMapLocationClient(getApplicationContext());//初始化定位参数mapLocationClientOption = new AMapLocationClientOption();//设置定位精度mapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//是否返回地址信息mapLocationClientOption.setNeedAddress(true);//是否只定位一次mapLocationClientOption.setOnceLocation(false);//设置是否强制刷新WIFI,默认为强制刷新mapLocationClientOption.setWifiActiveScan(true);//是否允许模拟位置mapLocationClientOption.setMockEnable(false);//定位时间间隔mapLocationClientOption.setInterval(2000);//给定位客户端对象设置定位参数mapLocationClient.setLocationOption(mapLocationClientOption);//绑定监听mapLocationClient.setLocationListener(this);//开启定位mapLocationClient.startLocation();}}//停止定位@Overridepublic void deactivate() {mListener = null;if (mapLocationClient!=null){mapLocationClient.stopLocation();mapLocationClient.onDestroy();}mapLocationClient = null;}/**0  定位成功。1  一些重要参数为空,如context;请对定位传递的参数进行非空判断。2  定位失败,由于仅扫描到单个wifi,且没有基站信息。3  获取到的请求参数为空,可能获取过程中出现异常。4  请求服务器过程中的异常,多为网络情况差,链路不通导致,请检查设备网络是否通畅。5  返回的XML格式错误,解析失败。6  定位服务返回定位失败,如果出现该异常,请将errorDetail信息通过API@autonavi.com反馈给我们。7  KEY建权失败,请仔细检查key绑定的sha1值与apk签名sha1值是否对应。8  Android exception通用错误,请将errordetail信息通过API@autonavi.com反馈给我们。9  定位初始化时出现异常,请重新启动定位。10     定位客户端启动失败,请检查AndroidManifest.xml文件是否配置了APSService定位服务11     定位时的基站信息错误,请检查是否安装SIM卡,设备很有可能连入了伪基站网络。12     缺少定位权限,请在设备的设置中开启app的定位权限。**/
}

Android高德地图的定位相关推荐

  1. android高德地图默认当前位置,【报Bug】1.9.2 android 高德地图无法定位到当前位置...

    详细问题描述 (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题) [内容] 1.9.2版本 a ...

  2. Android 高德地图(带有定位和点击显示经度纬度)

    Android高德地图测试,如下: 1.Android高德地图Demo地址下载:       下载android高德地图Demo 1.2 Android定位SDK 一键下载 1.3 下载好的文件zip ...

  3. Android 高德地图的定位,周边搜索

    刚弄完这两个功能,当然是结合官网例子实现的.效果还行,稍作优化便可整合到app使用.在这里做一下总结,及说明下我的思路. 刚开始上手感觉比较乱学起来也比较累,方法,类太多,直接复制各种错,还不知道为什 ...

  4. android呼吸灯动画,Android高德地图自定义定位蓝点实现呼吸灯功能

    还是先上个图吧: cluster.gif 说下实现的原理,首先这个定位小蓝点是由两张图片组成的,最底层的一张白色圆形图片以及上一层的蓝色圆形图片,只要不停的对蓝色图片进行透明度动画操作就可以实现这个效 ...

  5. Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS

    /*** 判断定位服务是否开启** @param* @return true 表示开启*/ public static boolean isLocationEnabled(Context contex ...

  6. Android Studio之高德地图实现定位和3D地图显示

    在应用开发中,地图开发是经常需要使用的"组件",国内比较出名的是就是百度地图和高德地图. 此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码 ...

  7. android 高德地图定位获取经纬度

    android 高德地图定位获取经纬度 之前开发定位都是集成百度的,领导说要用高德的,没办法干吧,官方的文档太详细了看着真累. 我们得先去官网注册开发者账号,创建应用,填写自己项目的包名和SHA1, ...

  8. Android高德地图自定义Markers的例子

    下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地 ...

  9. android------之高德地图实现定位和3D地图显示

    2019独角兽企业重金招聘Python工程师标准>>> 在应用开发中,地图开发是经常需要使用的"组件",国内比较出名的是就是百度地图和高德地图. 此博客讲的是高德 ...

最新文章

  1. 如何用burp抓取手机的流量_用企业微信SCRM如何搭建流量新体系
  2. 万字深度好文!视觉-语言(VL)智能:任务、表征学习和大型模型
  3. php取汉字第一个字,php---------取汉字的第一个字的首字母
  4. ionic@2.0 beta版本安装指南
  5. 关于m_pMainWnd = dlg的错误
  6. [Hadoop] Install Hadoop 2.2 on Win7 64bit
  7. 五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O
  8. nginx指定配置文件启动_NGINX安全加固手册
  9. Hibernate学习笔记③
  10. js中立即执行函数会预编译吗_作为前端你了解JavaScript运行机制吗?
  11. ubuntu ssh 登录日志_全球第一开源ERP Odoo操作手册 安装ssh服务和ssh客户端
  12. Selenium2+python自动化8-SeleniumBuilder辅助定位元素
  13. hdu 4609 3-idiots(FFT计数)
  14. java循环判断要点_Java 循环条件判断好题锦集
  15. mavonEditor编辑器的使用
  16. python第三方库pip安装失败,无法使用pip命令安装python第三方库的原因及解决方法...
  17. 如何做到在各大搜索引擎搜索自己的网页
  18. php图片无损压缩的问题解决(推荐)
  19. Oracle不完全恢复
  20. NAXX Demo4_GZQ_01

热门文章

  1. 数据挖掘02-特征工程良好特征的特点
  2. 【学习笔记】URL和DOI是什么?有什么区别?
  3. GSM6.10转码与wav文件保存
  4. MATLAB粒子群算法求解带充电站(桩)的电动车辆路径规划EVRP问题代码实例
  5. zookeeper基本讲解(Java版,真心不错)
  6. Python-Unicode
  7. 《招标投标法》和《招标投标实施条例》有什么关系?
  8. Labview调用EXE形式COM组件
  9. 虚拟服务器关机之后怎么开,云服务器关机了怎么开机
  10. 小程序获取oppenid时返回40125或者40029