Android studio实现地图定位
程序员文章站
2022-03-07 14:16:00
...
项目相关
项目功能
能在地图上显示经纬度以及自身所在地区
结果截图
因为在AVD模拟器上运行会出现定位失败的问题,所以我尝试了真机模拟
项目源码
GitHub: 点此跳转
参考文档
核心代码
- 判断是否有ACCESS_COARSE_LOCATION权限,动态请求用户允许使用该权限
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
}
else {
prepareLocatingService();
}
- 初始化,以及保存定位参数
private void initLocation() {
mLocationClient = new LocationClient(getApplicationContext());
mLocationClient.registerLocationListener(new MyLocationListener());
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.bmapView);
baiduMap = mapView.getMap();
tv_Lat = findViewById(R.id.tv_Lat);
tv_Lon = findViewById(R.id.tv_Lon);
tv_Add = findViewById(R.id.tv_Add);
LocationClientOption option = new LocationClientOption();
//设置扫描时间间隔
option.setScanSpan(1000);
//设置定位模式
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
//保存定位参数
mLocationClient.setLocOption(option);
}
- 管理各部分的生命周期
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
mLocationClient.stop();
mapView.onDestroy();
}
真机模拟
- 将手机和电脑通过数据线连接,并选择传输文件
- 进入手机上的开发者模式,并打开USB调试,各个手机打开方式可能不一样,就不具体说明了
- 打开AS,这时手机上会有提示框,询问是否允许USB调试,点击确定即可
- 进入as之后会出现自己的手机,运行程序就可以进行真机模拟了
所遇问题
- as配置时
- 获取SHA1的时候我的debug.keystore和老师的位置不一样,然后我通过全局搜索debug.keystore才找到
- 在Application标签中声明定位的service组件时,报错了,经过百度之后发现,我的开发包中没有包含基本定位功能
- 运行时
- 出现了定位不准的问题,显示的定位仍然是北京,后来经过调试发现是定位失败的问题
再进一步研究发现可能是AVD模拟器没有网络导致的,但是经过各种尝试我也没成功使模拟器连上网,最后迫于无奈选择了真机模拟
- 出现了定位不准的问题,显示的定位仍然是北京,后来经过调试发现是定位失败的问题
推荐阅读
-
Android Studio修改Log信息颜色的实现
-
Android开发之android_gps定位服务简单实现
-
Android GridView实现滚动到指定位置的方法
-
Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版
-
实现Android studio设置自动导包及自动导包快捷键
-
Android Studio实现标题栏和状态栏的隐藏
-
Android Studio 实现将support库改成Androidx
-
Android Studio 实现九宫格功能
-
详解Android Studio实现用户登陆界面demo(xml实现)
-
Android中ImageView实现选择本地图片并显示功能