在高德地图开放平台中申请key需要获取sha1值 ,简单方法

打开android studio

点击右侧的gradle

出现

然后点击signingReport就会出现你得SHA1值

就可以去申请key

导入Jar包

创建JniLibs

权限

    <!--允许程序打开网络套接字--><uses-permission android:name="android.permission.INTERNET" /><!--允许程序设置内置sd卡的写权限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许程序获取网络状态--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--允许程序访问WiFi网络信息--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--允许程序读写手机状态和身份--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!--用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!--用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!--用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!--用于申请调用A-GPS模块--><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/><!--获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><!--用于访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!--用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

配置,value里面填写你得到的Key,写在清单文件

            <meta-dataandroid:name="com.amap.api.v2.apikey"android:value="填写你获得的key">

布局

    <com.amap.api.maps.MapViewandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"/><ToggleButtonandroid:id="@+id/tb"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:textOff="普通地图"android:textOn="卫星地图"android:checked="false"/>

主要实现代码

public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener {private MapView mMapView = null;private AMap aMap;
//声明AMapLocationClient类对象,定位发起端private AMapLocationClient mLocationClient = null;
// 声明mLocationOption对象,定位参数public AMapLocationClientOption mLocationOption = null;
// 声明mListener对象,定位监听器private OnLocationChangedListener mListener = null;private boolean isFirstLoc = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取地图控件引用mMapView = (MapView) findViewById(R.id.map);mMapView.onCreate(savedInstanceState);//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图ToggleButton tub = findViewById(R.id.tb);tub.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked){aMap.setMapType(AMap.MAP_TYPE_SATELLITE);}else{aMap.setMapType(AMap.MAP_TYPE_NORMAL);}}});init();location();}private void init(){//初始化地图控制器对象if (aMap == null) {aMap = mMapView.getMap();UiSettings settings = aMap.getUiSettings();aMap.setLocationSource(this);//设置了定位的监听// 是否显示定位按钮settings.setMyLocationButtonEnabled(true);aMap.setMyLocationEnabled(true);//显示定位层并且可以触发定位,默认是flase}};private void location() {//初始化定位mLocationClient = new AMapLocationClient(getApplicationContext());// 设置定位回调监听mLocationClient.setLocationListener(this);// 初始化定位参数mLocationOption = new AMapLocationClientOption();// 设置定位模式为Hight_Accuracy高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);// 设置是否返回地址信息(默认返回地址信息)mLocationOption.setNeedAddress(true);// 设置是否只定位一次,默认为falsemLocationOption.setOnceLocation(false);// 设置是否强制刷新WIFI,默认为强制刷新mLocationOption.setWifiActiveScan(true);// 设置是否允许模拟位置,默认为false,不允许模拟位置mLocationOption.setMockEnable(false);// 设置定位间隔,单位毫秒,默认为2000msmLocationOption.setInterval(2000);// 给定位客户端对象设置定位参数mLocationClient.setLocationOption(mLocationOption);// 启动定位mLocationClient.startLocation();}@Overrideprotected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图mMapView.onDestroy();mLocationClient.stopLocation();//停止定位mLocationClient.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 onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态mMapView.onSaveInstanceState(outState);}@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) {mListener = onLocationChangedListener;}@Overridepublic void deactivate() {mListener = null;}@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if (aMapLocation != null) {if (aMapLocation.getErrorCode() == 0) {//定位成功回调信息,设置相关消息aMapLocation.getLocationType();// 获取当前定位结果来源,如网络定位结果,详见官方定位类型表aMapLocation.getLatitude();//获取纬度aMapLocation.getLongitude();//获取经度aMapLocation.getAccuracy();//获取精度信息SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date(aMapLocation.getTime());df.format(date);//定位时间aMapLocation.getAddress();// 地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。aMapLocation.getCountry();//国家信息aMapLocation.getProvince();//省信息aMapLocation.getCity();//城市信息aMapLocation.getDistrict();//城区信息aMapLocation.getStreet();//街道信息aMapLocation.getStreetNum();//街道门牌号信息aMapLocation.getCityCode();//城市编码aMapLocation.getAdCode();//地区编码// 如果不设置标志位,此时再拖动地图时,它会不断将地图移动到当前的位置if (isFirstLoc) {// 设置缩放级别aMap.moveCamera(CameraUpdateFactory.zoomTo(17));// 将地图移动到定位点aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(aMapLocation.getLatitude(), aMapLocation.getLongitude())));// 点击定位按钮 能够将地图的中心移动到定位点mListener.onLocationChanged(aMapLocation);// 添加图钉//aMap.addMarker(getMarkerOptions(amapLocation));// 获取定位信息StringBuffer buffer = new StringBuffer();buffer.append(aMapLocation.getCountry() + ""+ aMapLocation.getProvince() + ""+ aMapLocation.getCity() + ""+ aMapLocation.getProvince() + ""+ aMapLocation.getDistrict() + ""+ aMapLocation.getStreet() + ""+ aMapLocation.getStreetNum());Toast.makeText(getApplicationContext(), buffer.toString(), Toast.LENGTH_LONG).show();isFirstLoc = false;}} else {//显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。Log.e("AmapError", "location Error, ErrCode:"+ aMapLocation.getErrorCode() + ", errInfo:"+ aMapLocation.getErrorInfo());Toast.makeText(getApplicationContext(), "定位失败", Toast.LENGTH_LONG).show();}}}
}

android实现高德地图集成相关推荐

  1. Android实现高德地图轨迹回放

    Android实现高德地图轨迹回放 写在前面 准备 官方文档解读 创建应用: 地图api引入: 权限添加 效果展示 过程实现 地图初始化 定位 显示标记点 点平滑移动 添加呼吸点 写在结尾 写在前面 ...

  2. android仿高德地图透明黑字,Android 仿高德地图可拉伸的BottomSheet

    原标题:Android 仿高德地图可拉伸的BottomSheet 2018安卓巴士开发者大会-上海站 你一直期待的安卓技术盛宴即将登场! 前言 最近项目中需要用到高德地图搜索结果后的结果展示的可拉伸控 ...

  3. Android使用高德地图api实现基础定位

    Android使用高德地图api实现基础定位(一) 关于 会获取SHA1的可自行跳过这一步 第二步引用高德sdk 第三步修改MainActivity.java 关于 这篇主要讲如何使用高德sdk(不是 ...

  4. 出行品类HarmonyOS高德地图集成过程分享

    项目背景 电动车因骑行方便.节省时间等优势,成为我们日常出行的交通工具之一,国内电动车的需求数据庞大且逐年攀升.然而电动车频繁被盗也不是新闻了,不仅给用户带来烦恼,也给警务工作增加负担.如何制定一套提 ...

  5. Android调用高德地图直接导航的简单实例

    在学校最近做了一个小APP,脑子笨怕忘,写个博客记录一下. 简单来说就是保存地点,然后单击直接打开高德地图APP并从当前所在地导航到保存的地点.因为是小型学习用的,所以保存地点采用了Android本地 ...

  6. 【Android】高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法

    [Android]高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法 来源: https://blog.csdn.net/weixin_39370093/article/deta ...

  7. android 基于高德地图的轨迹回放

    android 基于高德地图的轨迹回放 前段时间公司项目有一个需求,就是需要看到设备上传之后的轨迹路线,并且可以实现回放的整个过程,功能包括路线回放.地图位置插点.回放之后的轨迹标记颜色.回放加速等功 ...

  8. Android之百度地图集成

    Android之百度地图集成 注册和获取密钥 注册百度账号 注册链接:点击进行百度账号注册 创建应用 1.应用名称 2.应用类型(Android SDK) 3.发布版SHA1(详见:) 4.包名 (A ...

  9. 计算机设计基于Android实现高德地图校内导航出行app【项目源码+简要论文说明】

    基于Android实现高德地图校内导航出行app项目演示 如今手机的发展非常迅速,手机越来越成为人们不可缺少的东西.手机从最初功能简单的功能机,发展到如今几乎无所不能的智能机,满足了人们的日常需求,手 ...

最新文章

  1. 软件:向工业互联网产业成功转型的关键
  2. win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案
  3. 【js】JSON.stringify 语法实例讲解
  4. R运行大数据的过程中遇到的问题:不能有负长度矢量
  5. linux如何给vm权限,linux – 如何创建一个每个用户的vm被隔离的环境
  6. 设计模式学习笔记——单例(Singleton)模式
  7. Linux常用命令—权限管理命令—其他权限管理命令
  8. 星级评价组件--引发对React组件的思考
  9. 计算机在网站设计中的应用,网页设计中平面设计的应用及其作用
  10. Java基础--多态
  11. matlab 指定路径保存图片_关于matlab图片保存方式
  12. react中dispatch_reactjs – TypeError:dispatch不是函数.在React无状态组件中
  13. Redis 性能优化思路,写的非常好!
  14. Ngnix中的fastcgi参数性能优化和解释
  15. Tensorflow参数初始化很慢的问题
  16. python中的实用模块_python中的常用模块
  17. python画钢铁侠标志图片_python可视化之matplotlib绘图--蜘蛛侠钢铁侠(组合分区绘图)...
  18. 如何看懂这些该死的图形学公式
  19. Android应用开发编译框架流程与IDE及Gradle概要
  20. mysql var目录很快_删除/var/lib/mysql目录的解决办法

热门文章

  1. 【学习笔记之计算机组成原理篇】计算机系统概论
  2. skycons.js 基于canvas的天气动态图标小插件
  3. 斑马打印机打印中文乱码的问题
  4. 基于JAVA共享汽车管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  5. 解决安卓apk在其他手机无法安装问题
  6. 机器学习OneR算法
  7. 计算机应用技术 自然语言处理,基于词联接的自然语言处理技术及其应用研究-计算机应用技术专业论文.docx...
  8. [转载]关于字体的一些常识
  9. oracle数据库userenv,Oracle数据库中userenv、sys_context的参数
  10. 电脑搜索不出网络共享文件夹内容