android 百度位置,百度地图Android定位

首先,需要完成开发者注册工作,地址:https://passport.baidu.com/v2/?reg

然后就可以看见我的应用处,可以创建应用:

ee5da1ffeae18f4e8e8c5f00b27b96c4.png

创建参考文档:Android定位SDK

目前百度地图Android定位SDK境内服务对非商业目的使用的开发者不收取任何费用。

由于我只需要这个功能,故而这里选择:

054ae667c67bfa8b4d04179dfbb5c5a0.png

切换到用户目录下的.android:

52d8330b6a8e5af374609645b9ef6860.png

输入cmd,输入命令:

keytool -list -v -keystore debug.keystore -alias androiddebugkey

输入密钥库口令:andorid,然后即可看见SHA1,复制输入即可。

然后是包名,打开AndroidManifest.xml 配置文件,package 属性所对应的内容为应用包名。

然后,提交即可。

9fc13d289eedcd0545bff7b7e5e0bb66.png

下载Android定位SDK并解压,将libs中的jar和so放置到工程中相应的位置。

004ef9d652070eb200196fb0105c39e0.png

我这里在下载中,选择基础定位,JAR,得到BaiduLBS_AndroidSDK_Lib.zip文件。

按照说明解压,解压后内容如下:

12dfe198176bd480182a5f2ffa0409ba.png

然后,按照官网提示,放置Android定位SDK放置到Android工程中:

切换到project视图,然后找到libs:

45512105cad4e5ae4c6378c858098781.png

1bee44933aa37892ece09a987af79d61.png

然后,添加依赖:

android {

...

// 百度定位SDK需要

sourceSets{

main{

jniLibs.srcDir 'libs'

jni.srcDirs = [] //disable automatic ndk-build

}

}

}

implementation files('libs/BaiduLBS_Android.jar')

3. 添加AK

在AndroidManifest.xml文件中加入如下代码配置开发密钥(AK):

android:name="com.baidu.lbsapi.API_KEY"

android:value="AK" >

添加服务:

添加权限:

按照官网案例即可:http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/get-location/address

经过测试,还需要自己调用onstop方法。

// 百度定位

public LocationClient mLocationClient = null;

private MyLocationListener myLocationListener = new MyLocationListener();

private void getLocation() {

// 请求定位

mLocationClient = new LocationClient(getApplicationContext());

List permissionList = new ArrayList<>();

//如果没有启动下面权限,就询问用户让用户打开

if (ContextCompat.checkSelfPermission(PushActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);

}

if (ContextCompat.checkSelfPermission(PushActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {

permissionList.add(Manifest.permission.READ_PHONE_STATE);

}

if (ContextCompat.checkSelfPermission(PushActivity.this,

Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);

}

if (!permissionList.isEmpty()) {

String[] permissions = permissionList.toArray(new String[permissionList.size()]);

ActivityCompat.requestPermissions(PushActivity.this, permissions, 1);

}

requestLocation();

}

/**

* 请求定位

*/

private void requestLocation(){

LocationClientOption option = new LocationClientOption();

option.setScanSpan(500);

option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);

option.setCoorType("bd09ll");

option.setScanSpan(1000);

option.setOpenGps(true);

option.setIsNeedAddress(true);

option.setLocationNotify(true);

option.setIgnoreKillProcess(false);

option.SetIgnoreCacheException(false);

option.setEnableSimulateGps(false);

option.setNeedNewVersionRgc(true);

mLocationClient.setLocOption(option);

mLocationClient.registerLocationListener(myLocationListener);

mLocationClient.start();

}

private String currentPosition = "";

public class MyLocationListener extends BDAbstractLocationListener {

@Override

public void onReceiveLocation(BDLocation location) {

String addr = location.getAddrStr(); //获取详细地址信息

String country = location.getCountry(); //获取国家

String province = location.getProvince(); //获取省份

String city = location.getCity(); //获取城市

String district = location.getDistrict(); //获取区县

String street = location.getStreet(); //获取街道信息

String adcode = location.getAdCode(); //获取adcode

String town = location.getTown(); //获取乡镇信息

EditText reedit_page_position = findViewById(R.id.reedit_page_position);

String position_detail = country+province+city+district;

if(currentPosition.equals(position_detail) && currentPosition.length()!=0){

mLocationClient.unRegisterLocationListener(myLocationListener);

mLocationClient.stop();

}

reedit_page_position.setText(position_detail);

currentPosition = position_detail;

}

}

调用getLocation即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值