前期准备
点击进入高德平台获取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();
}
}
到这里一个简单的高德地图定位就完成了