Android入门(17)| 百度提供的 Android定位SDK

文章目录

  • 配置百度提供的 Android定位SDK
    • 用于发布的 SHA1
    • 用于测试的 SHA1
  • 使用百度定位实例


配置百度提供的 Android定位SDK

详情参见官方文档,这里仅对获取 SHA1 做详细介绍:

用于发布的 SHA1

在这里插入图片描述

用于测试的 SHA1

在这里插入图片描述


使用百度定位实例

在这里插入图片描述

public class LocationActivity extends AppCompatActivity {private static final String TAG = "LocationActivity";public LocationClient locationClient;private TextView positionText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.location_layout);// setAgreePrivacy接口需要在LocationClient实例化之前调用// 如果setAgreePrivacy接口参数设置为了false,则定位功能不会实现// true,表示用户同意隐私合规政策// false,表示用户不同意隐私合规政策LocationClient.setAgreePrivacy(true);try {// 通过getApplicationContext获取的全进程有效的Context来初始化LocationClient对象locationClient = new LocationClient(getApplicationContext());} catch (Exception e) {e.printStackTrace();Log.e(TAG, "onCreate: LocationClient初始化ERROR");}// 不同意隐私政策可能导致locationClient为空if (locationClient != null){// 注册监听器locationClient.registerLocationListener(new MyLocationClickListener());}positionText = findViewById(R.id.position_TextView);// 一次进行多个权限申请List<String> permissionList = new ArrayList<>();if (ContextCompat.checkSelfPermission(LocationActivity.this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);}if (ContextCompat.checkSelfPermission(LocationActivity.this,Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){permissionList.add(Manifest.permission.READ_PHONE_STATE);}if (ContextCompat.checkSelfPermission(LocationActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);}if (!permissionList.isEmpty()) {String[] permissions = permissionList.toArray(new String[permissionList.size()]);ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);}else {requestLocation();}}public class MyLocationClickListener extends BDAbstractLocationListener {@Overridepublic void onReceiveLocation(BDLocation bdLocation) {StringBuilder currentPosition = new StringBuilder();currentPosition.append("纬度:").append(bdLocation.getLatitude()).append("\n");currentPosition.append("经度:").append(bdLocation.getLongitude()).append("\n");currentPosition.append("国家:").append(bdLocation.getCountry()).append("\n");currentPosition.append("省:").append(bdLocation.getProvince()).append("\n");currentPosition.append("市:").append(bdLocation.getCity()).append("\n");currentPosition.append("区:").append(bdLocation.getDistrict()).append("\n");currentPosition.append("街道:").append(bdLocation.getStreet()).append("\n");currentPosition.append("定位方式: ");if(bdLocation.getLocType() == BDLocation.TypeGpsLocation) {currentPosition.append("GPS");}else if (bdLocation.getLocType() == BDLocation.TypeNetWorkLocation) {currentPosition.append("网络");}else {currentPosition.append("其他方式");}positionText.setText(currentPosition);}}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case 1:if (grantResults.length > 0){for (int result : grantResults) {if (result != PackageManager.PERMISSION_GRANTED) {Toast.makeText(this, "必须同意所有权限才能使用本程序",Toast.LENGTH_LONG).show();finish();return;}}requestLocation();}else {Toast.makeText(this, "申请权限时发生未知错误", Toast.LENGTH_LONG).show();Log.e(TAG, "onRequestPermissionsResult:待申请权限个数<=0");finish();}}}private void requestLocation() {initLocation(); // 实时更新位置,没有该方法则只会定位一次locationClient.start(); // 开始定位}// 配置定位SDK参数private void initLocation() {LocationClientOption option = new LocationClientOption();option.setScanSpan(5000); // 5秒更新一次位置// 设置定位模式option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);// 提供根据经纬度分析处于哪个国家、省、市、区、街道的功能option.setIsNeedAddress(true);locationClient.setLocOption(option);}@Overrideprotected void onDestroy() {super.onDestroy();// 活动被销毁时通过stop()方法停止定位// 防止程序在后台持续定位消耗手机电量locationClient.stop();}
}

利用 LocationClientOption 类配置定位 SDK 参数:

LocationClientOption.setLocationMode() 可以设置定位模式,而 LocationClientOption.LocationMode 中有四种模式可选:

  • Hight_Accuracy: 高精度模式(默认模式),优先使用 GPS 定位,无法接受 GPS 信号时使用网络定位;
  • Fuzzy_Locating: 模糊定位模式,v9.2.8 版本开始支持,可以降低 API 的调用频率,但同时也会降低定位精度;
  • Battery_Saving: 节电模式,只会使用网络定位。
  • Device_Sensors: 传感器模式,只会使用 GPS 定位。

定位 SDK 能够返回三种坐标类型的经纬度(国内),分别是:

  • GCJ02(国测局坐标)
  • BD09(百度墨卡托坐标)
  • BD09ll(百度经纬度坐标),若想将定位 SDK 获得的经纬度直接在百度地图上标注,请选择该类型。

V6.2.3 版本起,全新升级了全球定位能力,在海外地区定位所获得的经纬度,坐标类型默认、且只能是WGS84类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 不被遮挡 阴影_为何你没见到日环食?你不知道的天象常识原来还有这么多 | 返朴...

关注风云之声提升思维层次导读说好的日环食呢&#xff0c;为什么上周很多人只等到了日偏食?日食月食的时间和种类是怎么预测的?你真的弄懂了各种日食和月食的成因吗&#xff1f;你了解它们有什么区别和联系&#xff0c;又遵循什么样的时间规律吗? 日食和月食发生的频率一样吗…

初识贝塞尔(bezier)曲线

文章目录资料援引贝塞尔曲线的用途一阶贝塞尔&#xff08;bezier&#xff09;曲线二阶贝塞尔&#xff08;bezier&#xff09;曲线三阶贝塞尔&#xff08;bezier&#xff09;曲线高阶贝塞尔&#xff08;bezier&#xff09;曲线三阶贝塞尔曲线求插值&#xff08;Slerp&#xff09…

python代码测试 vim_用 Hypothesis 快速测试你的 Python 代码

点击上方“Python编程时光”&#xff0c;选择“加为星标”第一时间关注Python技术干货&#xff01;介绍无论你使用哪种编程语言或框架&#xff0c;测试都非常重要。Hypothesis是 Python 的一个高级测试库。它允许编写测试用例时参数化&#xff0c;然后生成使测试失败的简单易懂…

Mac 下 CMake 的配置与使用

文章目录安装与配置编译单个源文件编译前的准备开始编译编译多个源文件多个源文件在同一目录下多个源文件在不同目录下math 目录下的 CMakeLists.txt根目录的 CMakeLists.txtoption 选项导入外部库本地导入&#xff08;find_package&#xff09;外部导入&#xff08;FetchConte…

五轴编程_沙井万丰数控数控编程五轴编程那个软件好用

沙井万丰数控数控编程五轴编程那个软件好用设计需要掌握很高很全面的知识和技能&#xff0c;模具做的好&#xff0c;产品质量好&#xff0c;模具结构合理&#xff0c;生产效率高&#xff0c;工厂效益好。正因如此&#xff0c;模具技术工在外打工的工资都非常的高。少则每月几千…

Linux学习:第二章-Linux安装

一虚拟机使用 VMware主要特点&#xff1a; 1、不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统 2、本机系统可以与虚拟机系统网络通信 3、可以设定并且随时修改虚拟机操作系统的硬件环境 二安装方式 图形安装&#xff1a;直接回车 字符安装&#xff1a;linux tex…

keil3如何放大字体_国潮海报不会做?送你国风字体+图案笔刷+PSD素材+包装样机...

有很多朋友都问带鱼&#xff0c;国潮风的海报到底应该怎么做呢&#xff1f;首先你要知道什么是国潮风&#xff1a;国潮风就是现代文化和古代文化的碰撞&#xff0c;是年轻人的态度&#xff01;那么应该如何构图如何设计呢&#xff1f;如何配色如何搭配字体呢&#xff1f;这些方…

Google 开源项目风格指南学习笔记——C++篇

文章目录前言0. 缩写名词解释1. 头文件1.1. Self-contained 头文件1.2. 头文件保护1.3. 前置声明1.4 内联函数1.5. #include 的路径及顺序2. 作用域2.1. 命名空间2.2. 非成员函数、静态成员函数和全局函数2.3. 局部变量2.4. 静态和全局变量3. 类3.1. 构造函数的职责3.2. 隐式类…

hiveserver2启动不起来_给爱车配个充电宝,70迈汽车应急启动电源,让你远离搭电小广告...

说到汽车应急启动其实我有切身的痛&#xff0c;在哈尔滨零下35的严冬&#xff0c;晚上带着女神吃完饭&#xff0c;高高兴兴地吃完以后一上车&#xff0c;发现电瓶被冻没电了&#xff0c;天知道当时有多尴尬。马上叫了保险公司过来给搭电&#xff0c;结果在饭店从晚上8点一直等到…

Windows 下 VS 配置 OpenGL 环境

文章目录前言获取 GLFW打开 VS前言 感谢B站同学搬运YouTube上的教学视频。 获取 GLFW 从官网上下载GLFW macOS下64位二进制文件 打开 VS 新建解决方案 OpenGL test&#xff0c;并在解决方案中新建文件夹 Dependencies&#xff1a; 从下载好的 glfw 文件夹中找到最新版链接…

ubuntu 网卡双网口 配置_无线网卡m2 ngff keya keye、minipcie接口改转多口有线网卡实现软路...

小型主板及笔记本中的无线网卡m2ngffkeyakeye接口&#xff08;CNVI除外&#xff09;通过m2ngffkeyae转接pcie1x转接板&#xff0c;或者无线网卡的minipcie接口&#xff0c;通过minipcie转接pcie1x转接板可以改装有线网卡板卡&#xff0c;来实现软路由功能。m2ngffkeyae转接pcie…

OpenGL | 通过绘制一个三角形来入门 OpenGL 图形渲染管线

文章目录前言什么是 OpenGl &#xff1f;回顾openGL 的 Object显存结构工作阶段通过顶点缓冲对象将顶点数据初始化至缓冲中标准化设备坐标顶点缓冲对象 VBOglGenBuffersglBindBufferglBufferData建立了一个顶点和一个片段着色器着色器是什么&#xff1f;为什么需要使用着色器&a…

javascript特效_如何在网页添加鼠标点击特效

经常有同学问我怎么做到的&#xff0c;本论坛属于DZ当然用的是插件啦。偶然在网上找到一个关于wordpress的特效代码&#xff0c;分享给大家。WordPress 添加鼠标点击特效实际上这种教程在网上搜索一下有一大堆&#xff0c;已经是各大博主玩烂的东西了。不过既然给自己的博客加上…

android nio debug模式正常 release包crash_Flutter包大小治理上的探索与实践

Flutter作为一种全新的响应式、跨平台、高性能的移动开发框架&#xff0c;在性能、稳定性和多端体验一致上都有着较好的表现&#xff0c;自开源以来&#xff0c;已经受到越来越多开发者的喜爱。但是&#xff0c;Flutter的引入往往带来包体积的增大&#xff0c;给很多研发团队带…

sam格式的结构和意义_各种格式的练字本,对写字真有帮助吗

图片来源于笔势通各种格式的练字本现在越来越多&#xff0c;目的主要是便于学生把握好笔画的位置和布局&#xff0c;从而把整个字的结构处理好&#xff0c;常见的有米字格&#xff0c;回宫格等。这些练字本对于初学者来说肯定是有帮助的&#xff0c;特别是低年级学生。当然随着…

硬件结构图_那曲地表水电子除垢仪结构图

那曲地表水电子除垢仪结构图水处理设备也应断电停止使用&#xff0c;系统长期停止运行或季节性停止运行&#xff0c;在系统停止运行前&#xff0c;在水中投加适量缓蚀剂&#xff0c;并采取满水湿保护的措施&#xff0c;以减小腐蚀&#xff0c;保护系统。开启进水阀检查无误后电…

双屏怎么快速切换鼠标_在笔记本上实现双屏设计,怎么做到的?

如果给你的笔记本电脑安装两个屏幕&#xff0c;你会用来干什么&#xff1f;是上班时间主屏幕放着PPT&#xff0c;副屏幕偷摸玩游戏&#xff1b;还是主屏幕玩游戏&#xff0c;副屏幕刷刷B站视频&#xff1b;亦或是主屏幕P着图&#xff0c;副屏幕在网上找找能用的素材&#xff1f…

信元模式mpls 避免环路_【基础】交换机堆叠模式

堆叠是指将一台以上的交换机组合起来共同工作&#xff0c;以便在有限的空间内提供尽可能多的端口。多台交换机经过堆叠形成一个堆叠单元。可堆叠的交换机性能指标中有一个"最大可堆叠数"的参数&#xff0c;它是指一个堆叠单元中所能堆叠的最大交换机数&#xff0c;代…

为什么叫日上_古雷150万吨乙烯,为啥叫芒果项目?

古雷150万吨乙烯&#xff0c;为啥叫芒果项目&#xff1f;福建石油化工集团有限责任公司9月1日在福州举行的一场新闻通气会上透露&#xff0c;石化基地引进世界化工巨头——沙特基础工业公司(简称SABIC)&#xff0c;合资合作共建中沙古雷乙烯项目。中沙古雷乙烯项目将在福建古雷…

Linux学习:第四章-vi编辑器

一vi编辑器简介vim全屏幕纯文本编辑器别名alias命令‘命令别名’ aliasvi’vim’ alias lsls --colorttyls正常显示颜色 alias lsls --colornever 环境变量配置文件/root/.bashrc 二vim使用 1vi模式 vi文件名 命令模式 输入模式 末行模式 命令----》输入a&#xff1a;追加i&…