类似微信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中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-