使用场景
定位
效果展示
开发环境配置
软件 |
版本 |
autojs |
8.7.3-0 |
java |
1.8.0_131 |
android studio |
4.1.2 |
原理
autojs使用高地地图sdk, 实现设备定位
由于高德文档约定要在AndroidManifest.xml配置Key,
所以只能在打包后的app中使用高德SDK,
key怎么来
- 在高德控制台创建应用
- 添加key, sha1, 包名
- 注意区分key的名字和key的值, 我们要的是值
准备工作
- 阅读高德地图官方文档
https://lbs.amap.com/api/android-location-sdk/locationsummary/
- 下载jar: AMap_Location_V5.3.0_20210317.jar
https://lbs.amap.com/api/android-location-sdk/download/
- 将jar转为dex
dx是android studio的命令, 我的路径: C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\30.0.3
dx --dex --output=AMap_Location_V5.3.0_20210317.dex AMap_Location_V5.3.0_20210317.jar
开始写代码
- 加载dex
let dexPath = "AMap_Location_V5.3.0_20210317.dex"; runtime.loadDex(dexPath);
- 初始化定位
// 初始化定位 //声明AMapLocationClient类对象 let mLocationClient = null; //初始化定位 mLocationClient = new AMapLocationClient(context); //设置定位回调监听 mLocationClient.setLocationListener(getAMapLocationListener());
- 配置定位参数
//声明AMapLocationClientOption对象 let mLocationOption = null; //初始化AMapLocationClientOption对象 mLocationOption = new AMapLocationClientOption(); //设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景) mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn); //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //获取一次定位结果: mLocationOption.setOnceLocation(true); //设置是否返回地址信息(默认返回地址信息) mLocationOption.setNeedAddress(true); //给定位客户端对象设置定位参数 mLocationClient.setLocationOption(mLocationOption);
- 启动定位
//设置场景模式后最好调用一次stop,再调用start以保证场景模式生效 mLocationClient.stopLocation(); mLocationClient.startLocation();
- 退出时释放资源
events.on("exit", () => { log("exit"); log("stopLocation"); mLocationClient.stopLocation(); //停止定位后,本地定位服务并不会被销毁 log("onDestroy"); mLocationClient.onDestroy(); //销毁定位客户端,同时销毁本地定位服务。 });
- 以上就是autojs使用高德地图定位的所有步骤, 下面有完整源码
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途