大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1.LocationManagerProxy 获取当前Context 创建一个LocationManagerProxy 变量 mAMapLocManager = LocationManagerProxy.getInstance(this);
2.mAMapLocManager.requestLocationUpdates(LocationProviderProxy.AMapNetwork, 5000, 10, this); //设定 精度 5000m 监听器为当前Activity 所以当前Activiy需要继承AMapLocationListener,
1 private Handler handler = new Handler(); 2 private Runnable stop = new Runnable() { 3 4 @Override 5 public void run() { 6 if (aMapLocation == null) { 7 Toast.makeText(getApplicationContext(), "12秒内还没有定位成功,停止定位", Toast.LENGTH_SHORT).show(); 8 stopLocation();// 销毁掉定位 9 } 10 } 11 }; 12 13 handler.postDelayed(stop, 12000);
在使用requestLocationUpdates 进行定位的同时,我们必须设定超时时间,使用Runnable和handler来进行超时检验, 和OC的GCD、Block很像。
3.重写onPause() ,onLocationChanged(AMapLocation location) 函数,
在onLocationChanged中
1 if (location != null) { 2 this.aMapLocation = location;// 判断超时机制 3 double geoLat = location.getLatitude(); 4 double geoLng = location.getLongitude(); 5 6 String cityCode = ""; 7 String desc = ""; 8 Bundle locBundle = location.getExtras(); 9 if (locBundle != null) { 10 cityCode = locBundle.getString("citycode"); 11 desc = locBundle.getString("desc"); 12 } 13 14 String str = ("定位成功:(" + geoLng + "," + geoLat + ")" 15 + "\n精 度 :" + location.getAccuracy() + "米" 16 + "\n定位方式:" + location.getProvider() + "\n定位时间:" 17 + new Date(location.getTime()).toLocaleString() + "\n城市编码:" 18 + cityCode + "\n位置描述:" + desc + "\n省:" 19 + location.getProvince() + "\n市:" + location.getCity() 20 + "\n区(县):" + location.getDistrict() + "\n区域编码:" + location 21 .getAdCode()); 22 tv_address.setText(str); 23 }
这样就可以解析出地址了。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166652.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...