发表于: 2018-11-08 22:50:10
0 1352
一、今天完成的事情
显示百度地图,获取到当前的位置,有一些需要注意的地方
1.官方文档里提到的一个权限是无法申请的
Permissions with the protection level signature, privileged or signatureOrSystem are only granted to system apps. If an app is a regular non-system app, it will never be able to use these permissions.
这是一个只有系统应用才能使用的权限,第三方应用无权使用。
网上有两种解决方法,一种是clean工程,对于AndroiStudio无效。另一种是修改权限等级,这是一种投机的做法,既然官方不让使用这个权限了,肯定是有道理的,所以还是要遵守开发规范。
其实只要授予SD卡读写权限就可以了,不需要MOUNT_UNMOUNT_FILESYSTEMS这个权限,也不影响百度地图SDK的集成。
<!-- 获取SD卡写入权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 获取SD卡读取权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2.LocationClient的registerLocationListener方法已经过时了,替代者是BDAbstractLocationListener
Android定位SDK自V7.2版本起,对外提供了Abstract类型的监听接口BDAbstractLocationListener,用于实现定位监听。原有BDLocationListener暂时保留,推荐开发者升级到Abstract类型的新监听接口使用
源码
public abstract class BDAbstractLocationListener {
public BDAbstractLocationListener() {
}
public abstract void onReceiveLocation(BDLocation var1);
public void onConnectHotSpotMessage(String var1, int var2) {
}
public void onLocDiagnosticMessage(int var1, int var2, String var3) {
}
}
使用
private class MyLocationListener extends BDAbstractLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//
if (location.getLocType() == BDLocation.TypeGpsLocation
|| location.getLocType() == BDLocation.TypeNetWorkLocation) {
navigateTo(location);
Log.i(TAG, "onReceiveLocation: 坐标:" + "\n经度:" + location.getLatitude() + "\n纬度:" + location.getLongitude());
String city = location.getCity();
Log.i(TAG, "onReceiveLocation: 当前所在城市:" + city);
//根据city查询护工或者雇主
queryUser(city);
}
}
}
3.配置定位SDK参数
在获取经纬度和地址时,需要配置SDK参数,默认情况下是不获取地址的
//配置定位SDK参数
LocationClientOption option = new LocationClientOption();
option.setIsNeedAddress(true);
mLocationClient = new LocationClient(getApplicationContext());
mLocationClient.setLocOption(option);
mLocationClient.registerLocationListener(new MyLocationListener());
二、明天计划的事情
在地图上查看附近的护工、雇主位置
三、遇到的问题
四、收获
百度地图SDK的基本使用
评论