创建Key

打开高德开发平台 → 我的应用 → 创建应用 → 创建新Key

说明:
1.发布版安全码获取:用自己的签名打包成apk安装软件,用SHA1工具查看
2.调试版安全码获取: 直接运行安装软件,再用SHA1工具查看
2.PackageName获取:打开项目的build.gradle的applicationId就是包名

SHA1查看器下载

下载地址

高德Jar包和so文件下载

下载地址

权限和服务

<!-- 使用定位功能所需权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- 定位需要的服务 -->
<service android:name="com.amap.api.location.APSService" />
 <meta-data
   android:name="com.amap.api.v2.apikey"
   //申请的Key
   android:value="f21f6d8c24f1e8f4a1a20960583*****" />                

实例

public class MainActivity extends AppCompatActivity implements AMapLocationListener {
    private AMapLocationClient locationClient = null;
    private AMapLocationClientOption locationOption = null;
    AMapLocation mCurAMapLocation;
    private TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv= (TextView) findViewById(R.id.tv);
        initAmap();
        startLocation();
    }
    private void initAmap() {
        locationClient = new AMapLocationClient(this.getApplicationContext());
        locationOption = new AMapLocationClientOption();
        // 设置定位模式为高精度模式
        locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
        //设置定位间隔时间
        locationOption.setInterval(2000);
        // 设置定位监听
        locationClient.setLocationListener(this);
    }

    protected void startLocation() {
        // 设置定位参数
        locationClient.setLocationOption(locationOption);
        // 启动定位
        locationClient.startLocation();
    }

    protected void stopLocation() {
        if (locationClient.isStarted())
            locationClient.stopLocation();

    }

    @Override
    public void onLocationChanged(AMapLocation location) {
        // TODO Auto-generated method stub
        if (location != null && location.getErrorCode() == 0) {
            updateDistrictLocation(location);
        } else {
            updateDistrictLocation(null);
            Toast.makeText(MainActivity.this,"获取位置失败",Toast.LENGTH_SHORT).show();
        }
        stopLocation();

    }

    public void updateDistrictLocation(AMapLocation location) {
        mCurAMapLocation = location;
        Toast.makeText(MainActivity.this,location.getAddress(),Toast.LENGTH_SHORT).show();
        Log.i("打印", "updateDistrictLocation: "+location.getAddress());//详细定位地址
//        location.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
//        location.getLatitude();//获取纬度
//        location.getLongitude();//获取经度
//        location.getAccuracy();//获取精度信息
//        @SuppressLint("SimpleDateFormat")
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Date date = new Date(location.getTime());
//        df.format(date);//定位时间
//        location.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。
//        location.getCountry();//国家信息
//        location.getProvince();//省信息
//        location.getCity();//城市信息
//        location.getDistrict();//城区信息
//        location.getStreet();//街道信息
//        location.getStreetNum();//街道门牌号信息
//        location.getCityCode();//城市编码
//        location.getAdCode();//地区编码
    }
}

Android 高德地图定位的更多相关文章

  1. android 高德地图出现【定位失败key鉴权失败】

    如题:android 高德地图出现[定位失败key鉴权失败] 原因:使用的是debug模式下的SHA1,发布的版本正确获取SHA1的方式见: 方法二使用 keytool(jdk自带工具),按照如下步骤 ...

  2. Android高德地图自定义Markers的例子

    下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地 ...

  3. android 高德地图API 之 java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLibrary returned null错误

    错误场景: 运行android app时,在运行到调用高德地图API时,出现 “java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLi ...

  4. 高德地图定位不到 报错 location Error, ErrCode:7, errInfo:KEY错误 请到http://lbs.amap.com/api/android-location-sdk/abouterrorcode/查看错误码说明.

    出现该问题的可能是高德地图的配置不准确: 仔细配对一下 看sha1 是否是通过应用签名生成的  要区分发布版的sha1 跟调试版的sha1  是不相同的 (小编我第一次反这种错误的时候 是因为我把高得 ...

  5. android开发对应高德地图定位服务进度一

    进行android的高德地图开发首先需要进入高德地图的控制台进行注册登录.之后创建新的应用并且绑定软件得到相应的key. 这里面需要找到自己软件对应的多个SHA1.这里有发布版和调试版,以及对应的软件 ...

  6. 实例源码--Android高德地图实例源码

      下载源码 技术要点: 1.高德地图 API的使用 2.定位 ,查询路线,公交查询等地图相关技术 3.源码带有非常详 细的中文注释 ...... 详细介绍:  1. 高德地图API的使用 本套实例采 ...

  7. Android高德地图开发具体解释

    这段时间开发的时候用到了高德地图,对高德地图开发有心得体会,如今分享给大家.对我开发过百度地图的我来说,整体来说高德地图Demo,没有百度解说的具体 个人更偏向于使用百度地图,可是没办发,项目须要使用 ...

  8. Android 百度地图定位(手动+自动) 安卓开发教程

    近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置.  经过2天研究 ...

  9. android高德地图网络路径实现自定义marker并点击弹出自定义窗口

    android中使用地图的地方随处可见,今天记录一下网络路径生成自定义marker,点击标记弹出自定义的窗口(在这里使用的是高德地图) 在这里我们使用Grilde去加载网络图片,因为这个简直太方便了! ...

随机推荐

  1. Shell-3--变量

    用户自定义变量 环境变量 位置参数变量 预定义变量

  2. 菜鸟在ubuntu 16.04下制作am335x的SD卡启动盘反思

    以前只在消费电子平台android和rtos上做软件,每次都是公司的环境现成的,根本不用去想启动加载那部分 的事情,最近在做一个工控机的项目时,接触到了TI的arm335x系列的平台,才发现在嵌入式的 ...

  3. ASP.NET Web API实现微信公众平台开发(二)access_token与定时任务

    承接上一篇,今天主要讲述如何实现定时获取微信access_token功能的实现. access_token 首先我们根据微信的开发指南,任何对微信的操作都要使用合法获取的access_token,微信 ...

  4. mysql之数据分区

    一:概述  通过把表分成多几区间,每个区间存储符合特定表达式的数据(即在我们创建分区表时指定每个分区存储的条件例如:PARTITION p0 VALUES LESS THAN (100) 即p0区间存 ...

  5. Xamarin.Android 调用本地相册

    调用本地相册选中照片在ImageView上显示 代码: using System; using System.Collections.Generic; using System.Linq; using ...

  6. Java NIO中的缓冲区Buffer(一)缓冲区基础

    什么是缓冲区(Buffer) 定义 简单地说就是一块存储区域,哈哈哈,可能太简单了,或者可以换种说法,从代码的角度来讲(可以查看JDK中Buffer.ByteBuffer.DoubleBuffer等的 ...

  7. 从零开始学 Web 之 移动Web(八)Less

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 我们自研的那些Devops工具

    随着云技术以及容器技术的崛起,人肉运维的时代结束了 2018年为了解决日常运维中的痛点以及更高效的推进运维工作,我们自研并完善了几个工具系统,这些系统无一例外的帮我们节约了时间,提高了效率,这篇文章将 ...

  9. 和我一起打造个简单搜索之SpringDataElasticSearch入门

    网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...

  10. apache log4j打印日志源码出口

    Throwable.class: public void printStackTrace(PrintStream s) { synchronized (s) { s.println(this); St ...