类似微信QQ的分享我的位置

2024-06-15 10:58
文章标签 微信 位置 分享 qq 类似

本文主要是介绍类似微信QQ的分享我的位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在项目中有个IM即时消息模块,需要实现分享位置功能。我的第一反应是看下QQ的分享位置,思考实现步骤,后来决定采用基于高德地图定位方案。在集成高德地图时,碰到一些非代码问题:集成后提示INVALID_USER_SCODE,这往往是SHA1或者包名填错,后来检查重新填写才没报错。这让我受益匪浅,对以后的集成第三方库有很大帮助。那瞬间,才深深体会到“实践才是硬道理”。先看下效果图:


接下来整理一下实现步骤:

1、注册高德地图开发者平台账号(如果已经注册忽略次步骤);

2、创建新应用,这里要填写工程主包名、debug调试版的SHA1值、发布版SHA1值;

以window环境获取debug的SHA1值为例,首先敲入cmd打开命令行,进入.android目录,

输入keytool -list -v -keystore debug.keystore指令,按下回车键,然后输入密码(默认为android),再次按下回车,便可以看到SHA1值,右击标记然后选中SHA1对应值便可粘贴。

3、填写完毕提交后,在应用列表可看到新创建的应用,把key值复制下来,在工程的manifest.xml里面填写meta-data:

        <!--高德地图的appKey--><meta-dataandroid:name="com.amap.api.v2.apikey"android:value="9de9eda07cb1de54965460cdaf029cff"/>
        4、加上定位需要的权限:
 <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
5、在开发者平台下载定位、地图相关的jar包并且导入到工程里,在gradle的依赖库添加;

    compile files('libs/AMap_Location_V1.3.1.jar')compile files('libs/AMap_Services_V2.3.1.jar')compile files('libs/AMap_2DMap_V2.9.0.jar')
经过以上步骤,高德地图的第三方库已经集成到工程里,接下来是具体实现。首先是 同步activity的生命周期

	@Overrideprotected void onCreate(Bundle savedInstanceState) {...mapView.onCreate(savedIn}
	@Overrideprotected void onResume() {super.onResume();mapView.onResume();}
	@Overrideprotected void onPause() {super.onPause();mapView.onPause();}
	@Overrideprotected void onDestroy() {super.onDestroy();mapView.onDestroy();}
初始化Map,并且添加位置标志,设置监听器:
        if (aMap == null) {aMap = mapView.getMap();}MarkerOptions markerOptions = new MarkerOptions();markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.location));marker=aMap.addMarker(markerOptions);aMap.setOnCameraChangeListener(new OnCameraChangeListener() {@Overridepublic void onCameraChangeFinish(CameraPosition arg0) {}@Overridepublic void onCameraChange(CameraPosition arg0) {});

实现AMapLocationListenr的OnMapScreenShotListener接口,重写它们俩提供的方法。需要介绍的是

onMapScreenShot(Bitmap arg0),在该方法里将bitmap压缩成指定尺寸的位置截屏图片,并且保存到本

存储指定目录里,获取地址返回给上一个activity。这样就可以从指定目录读取位置图片并且展示出来,

同时在图片下方显示对应详细地址。效果图如下:


直到这里,已经介绍完毕分享地理位置流程。如果大家有兴趣,可以自己动手集成下高德地图或者百度地图。毕竟遇到问题,然后自己摸索仔细思考,最后解决问题是程序员的一大乐趣。如果大家需要源码参考,可以到我的博客主页下载。



这篇关于类似微信QQ的分享我的位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063258

相关文章

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5