高德定位集成

1、进入高德开放平台
2、注册用户登录,并成为开发者;
3、创建应用,填写应用名称和应用类型;

这里写图片描述

4、点击最右侧小三角展开什么都没有,好了现在点击右侧“添加新Key”,弹出对话框中输入 “Key名称”、”Package(应用包名)”、选择”服务平台”,然后就是”调试版和发布版的SHA1”了,可以先随意输入(一会过来改)提交后即可看到高德为我们生成的Key了

这里写图片描述

这里写图片描述

5、进入高德定位相关下载下载SDK,还有Demo和开发文档也可以一起下载;
6、将AMap_Location_Vxxx.jar放到项目libs中,没全局引用libs的在gradle中引用一下,Sync Project;
7、在AndroidManifest.xml中添加相关权限、服务和配置key
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
 <service android:name="com.amap.api.location.APSService"></service>
<application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name">
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="c8f62c4b4012f97c200f921f41f412e0">
        </meta-data>
</application>
8、相关配置完成,可以开始写码了,下面是简单定位代码,请查看文档或Demo进行开发;
AMapLocationClient locationClient = new AMapLocationClient(getApplicationContext());
AMapLocationClientOption locationOption = new AMapLocationClientOption();
// 设置定位监听
locationClient.setLocationListener(listener);
// 设置定位模式为低功耗模式
locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
//设置为单次定位
locationOption.setOnceLocation(false);
// 设置是否需要显示地址信息
locationOption.setNeedAddress(true);
// 设置定位间隔
locationOption.setInterval(2000);
...
// 设置定位参数
locationClient.setLocationOption(locationOption);
// 启动定位
locationClient.startLocation();
// 设置定位监听回调
AMapLocationListener listener = new AMapLocationListener() {
   @Override
   public void onLocationChanged(AMapLocation location) {
            if (null != location && location.getErrorCode() == 0) {
                Log.v("location", "经度:" + location.getLongitude());
                Log.v("location", "纬度:" + location.getLatitude());
                Log.v("location", "国家:" + location.getCountry());
                Log.v("location", "省:" + location.getProvince());
                Log.v("location", "市:" + location.getCity());
                Log.v("location", "地址:" + location.getAddress());
                ...
            }
        }
};
// 停止定位
locationClient.stopLocation();
 if (null != locationClient) {
       // 一定要执行AMapLocationClient的onDestroy释放资源
       locationClient.onDestroy();
       locationClient = null;
       locationOption = null;
  }
9、OK,代码完成运行代码是会定位失败的,location.getErrorCode()应该会返回7,可以查看错误码,Key鉴定失败,因为我们没有配置正确的keystore SHA1;
10、运行App是用debug签名的,默认的debug.keystore是在C:\Users\用户名.android目录下,下面介绍生成正式版的keystore;
11、Build->Generate Signed APK,选择Create new store

这里写图片描述
Key store path(keystore的路径)
Password(keystore的密码,以后打包APK要用)
Alias(密钥别名)
Password(key的密码,以后打包APK要用)
Validity(years) (密钥有效期(年))
Frist and Last Name(名字)
Organiztion Unit(组织单位)
Organiztion(组织)
City or Locality(城市)
State or Province(州或省)
Country Code(XX)(国家编码)

12、填写完成后,OK,会弹出对话框让输入Master Password密码,其实这里已经生成keystore了,返回就可以看到刚自己命名的keystore了(我上面命名为release_keystore.jks,放在桌面上),下面顺带说下打包APK,Master Password不是前面设置的keystore或key的passwod,具体怎么来的我也不清楚,知道的可以输入,不知道的是可以重置的,点击Reset按钮即可,也可以在Settings->Appearance&Behavior->System Settings->Password中点击Master Password修改或重置主密码,然后就可以进入签名APK界面,可以选择release或debug签名生成APK了;

这里写图片描述
这里写图片描述

13、获取SHA1,通过命令:

keytool -list -v -keystore debug.keystore
keytool -list -v -keystore release_keystore.jks
分别获取debug和release的SHA1,默认debug密码是android,不用输入直接回车就可以了,release的密码就是前面设置的keystore的密码,不输入直接回车也可以,然后就可以得到SHA1了;
这里写图片描述

14、在高德开放平台我的应用中找到刚才创建的应用,点击Key那栏右边的设置,分别将发布版安全码:SHA1和调试版安全码SHA1修改即可定位了;
15、其他开发人员没有你的debug.keystore是定位不成功的,除非你将的你debug.keystore替换他们的,这样很麻烦,现在在项目里配置一下debug.keystore,在module的gradle的android里面配置如下代码,
signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }
    }

上面的代码要求你的debug.keystore在项目的module目录下才能读取到,当然也可以写绝对路径。
这里写图片描述

到这里结束了,这是我的一些笔记,如有不对的地方请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值