热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android和高德地图Api获取自己的经纬度及位置

首先需要创建一个高德开发者账号。(不会的百度下)然后我们需要在控制台创建应用Sha1获取可以参照:这里packagename为你创建程序的名字,在Man

首先需要创建一个高德开发者账号。(不会的百度下)
然后我们需要在控制台创建应用
在这里插入图片描述
Sha1获取可以参照:这里
packagename为你创建程序的名字,在Manifest里可以看见
在这里插入图片描述
然后点击创建就行了。
创建之后就可以获取到Key
在这里插入图片描述
接下来我们需要去下载包文件了
点击这里下载
在这里插入图片描述
为了省事,直接选择一键下载。快而且方便
下载完成之后,进行压缩:
在这里插入图片描述
将jar这个文件拷贝到项目的 app->libs里
在这里插入图片描述
这里一定要注意:
点击app->build.gradle
在 dependencies里加入 implementation fileTree(includes: [’*.jar’],dir:‘libs’)
在这里插入图片描述
还有就是package
就是在这里插入图片描述如果你名字改变了,一定要将高德api的package改掉
接下来配置Manifest.xml

<uses-permission android:name&#61;"android.permission.ACCESS_COARSE_LOCATION">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_FINE_LOCATION">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_NETWORK_STATE">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_WIFI_STATE">uses-permission><uses-permission android:name&#61;"android.permission.CHANGE_WIFI_STATE">uses-permission><uses-permission android:name&#61;"android.permission.INTERNET">uses-permission><uses-permission android:name&#61;"android.permission.READ_PHONE_STATE">uses-permission><uses-permission android:name&#61;"android.permission.WRITE_EXTERNAL_STORAGE">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS">uses-permission><uses-permission android:name&#61;"android.permission.FOREGROUND_SERVICE"/><uses-permission android:name&#61;"android.permission.ACCESS_BACKGROUND_LOCATION"/>

还需要在application中加入apikey和server

<meta-data android:name&#61;"com.amap.api.v2.apikey" android:value&#61;"92aa621ff8c377821aa7b6e412e7a706">
<service android:name&#61;"com.amap.api.location.APSService">service>

完整代码&#xff1a;


<manifest xmlns:android&#61;"http://schemas.android.com/apk/res/android"package&#61;"com.example.maptest"><uses-permission android:name&#61;"android.permission.ACCESS_COARSE_LOCATION">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_FINE_LOCATION">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_NETWORK_STATE">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_WIFI_STATE">uses-permission><uses-permission android:name&#61;"android.permission.CHANGE_WIFI_STATE">uses-permission><uses-permission android:name&#61;"android.permission.INTERNET">uses-permission><uses-permission android:name&#61;"android.permission.READ_PHONE_STATE">uses-permission><uses-permission android:name&#61;"android.permission.WRITE_EXTERNAL_STORAGE">uses-permission><uses-permission android:name&#61;"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS">uses-permission><uses-permission android:name&#61;"android.permission.FOREGROUND_SERVICE"/><uses-permission android:name&#61;"android.permission.ACCESS_BACKGROUND_LOCATION"/><applicationandroid:allowBackup&#61;"true"android:icon&#61;"&#64;mipmap/ic_launcher"android:label&#61;"&#64;string/app_name"android:roundIcon&#61;"&#64;mipmap/ic_launcher_round"android:supportsRtl&#61;"true"android:theme&#61;"&#64;style/Theme.MapTest"><meta-data android:name&#61;"com.amap.api.v2.apikey" android:value&#61;"92aa621ff8c377821aa7b6e412e7a706">meta-data><activityandroid:name&#61;".MainActivity"android:exported&#61;"true"><intent-filter><action android:name&#61;"android.intent.action.MAIN" /><category android:name&#61;"android.intent.category.LAUNCHER" />intent-filter>activity><service android:name&#61;"com.amap.api.location.APSService">service>application>manifest>

activitymain.xml


<androidx.constraintlayout.widget.ConstraintLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"xmlns:app&#61;"http://schemas.android.com/apk/res-auto"xmlns:tools&#61;"http://schemas.android.com/tools"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"tools:context&#61;".MainActivity"><LinearLayoutandroid:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:orientation&#61;"vertical"><TextViewandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:id&#61;"&#64;&#43;id/position_text" />LinearLayout>androidx.constraintlayout.widget.ConstraintLayout>

MainActivity:

package com.example.maptest;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Locale;public class MainActivity extends AppCompatActivity {public AMapLocationClient mLocationClient&#61;null;public AMapLocationListener mapLocationListener&#61;new AMapLocationListener() {&#64;Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if(aMapLocation!&#61;null){if(aMapLocation.getErrorCode()&#61;&#61;0){double latitude&#61;aMapLocation.getLatitude();double Longitude&#61;aMapLocation.getLongitude();String province&#61;aMapLocation.getProvince();String city&#61;aMapLocation.getCity();String district&#61;aMapLocation.getDistrict();String streetNumber&#61;aMapLocation.getStreetNum();String text&#61;"经度: "&#43;Longitude&#43;"\n"&#43;"纬度: "&#43;latitude&#43;"\n"&#43;"详细位置: "&#43;province&#43;city&#43;district&#43;streetNumber;position.setText(text);}else{Log.e("AmapError","location Error, ErrCode:"&#43; aMapLocation.getErrorCode() &#43; ", errInfo:"&#43; aMapLocation.getErrorInfo());position.setText("定位失败");}}}};public AMapLocationClientOption mLocationOption&#61;null;private TextView position;&#64;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);position&#61;findViewById(R.id.position_text);AMapLocationClient.updatePrivacyShow(getApplicationContext(),true,true);AMapLocationClient.updatePrivacyAgree(getApplicationContext(),true);try {mLocationClient&#61;new AMapLocationClient(getApplicationContext());} catch (Exception e) {e.printStackTrace();}mLocationClient.setLocationListener(mapLocationListener);mLocationOption&#61;new AMapLocationClientOption();mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);if(null!&#61;mLocationClient){mLocationClient.setLocationOption(mLocationOption);mLocationClient.stopLocation();mLocationClient.startLocation();}}public void onDestroy(){super.onDestroy();mLocationClient.onDestroy();}public static String sHA1(Context context){try {PackageInfo info &#61; context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);byte[] cert &#61; info.signatures[0].toByteArray();MessageDigest md &#61; MessageDigest.getInstance("SHA1");byte[] publicKey &#61; md.digest(cert);StringBuffer hexString &#61; new StringBuffer();for (int i &#61; 0; i < publicKey.length; i&#43;&#43;) {String appendString &#61; Integer.toHexString(0xFF & publicKey[i]).toUpperCase(Locale.US);if (appendString.length() &#61;&#61; 1)hexString.append("0");hexString.append(appendString);hexString.append(":");}String result &#61; hexString.toString();return result.substring(0, result.length()-1);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}
}

这里注意一下。如果你显示不了定位的话&#xff0c;直接调用sHA1这个方法进行获取自己的SHA1值。然后拷贝到控制台的Sha1里。
最后截图&#xff1a;
在这里插入图片描述
如果有什么不知道的。可以评论区留言。看到会回复


推荐阅读
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
author-avatar
UUUUUUUUUU8
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有