前期准备
点击进入高德平台获取key
**步骤一:**登录注册进入控制台
步骤二:
**步骤三:**获取sha1值,以及其包名。
**步骤四:**获取sha1值
步骤五:复制获取到key值
到这前期工作也就结束了。
一、在清单文件中添加权限
- 在application中添加以下代码
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="添加我们刚获取的key" />
<service android:name="com.amap.api.location.APSService" />
在application上层添加以下权限
<uses-permission android:name="android.permission.INTERNET" /> <!-- 用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 用于申请获取蓝牙信息进行室内定位 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
二、在高德地图页面添加定位权限申请
public class MainActivity extends BaseActivity{
@BindView(R.id.tv_name)
TextView tvName;
private AMapLocationClient mLocationClient = null;
private AMapLocationListener mLocationListener = new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation != null) {
if (aMapLocation.getErrorCode() == 0) {
String city = aMapLocation.getCity();
tvName.setText(city);
} else {
Log.e("定位错误", aMapLocation.getErrorCode() + ":" + aMapLocation.getErrorInfo());
}
} else {
Log.e("定位失败", "");
}
}
};
@Override
protected int getContentView() {
return R.layout.film_fragment;
}
//定位
private void init() {
mLocationClient = new AMapLocationClient(getActivity());
mLocationClient.setLocationListener(mLocationListener);
if (ActivityCompat.checkSelfPermission(getContext(),
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat
.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 100);
} else {
mLocationClient.startLocation();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
mLocationClient.startLocation();
}
}
到这里一个简单的高德地图定位就完成了