Android 高德地图key获取、坐标定位

tech2023-06-21  113

前期准备

点击进入高德平台获取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(); } }

到这里一个简单的高德地图定位就完成了

最新回复(0)