Android LocationManager获取经度与纬度等地理信息
家电修理 2023-07-16 19:17www.caominkang.com电器维修
Android LocationManager获取经度与纬度等地理信息
利用LocationManager实现定位功能
1 实时更新经度,纬度
2 根据经度和纬度获取地理信息(比如:国家,街道等)(略过)
MainActivity如下:
package .bb; import java.util.Iterator; import java.util.List; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.idget.TextVie; import android.app.Activity; import android.content.Context; public class MainActivity extends Activity { private Context mContext; private TextVie mTextVie; private LocationManager mLocationManager; private LocationListenerImpl mLocationListenerImpl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVie(R.layout.main); init(); initLocationManager(mContext); } private void init(){ mContext=this; mTextVie=(TextVie) findVieById(R.id.textVie); } private void initLocationManager(Context context){ mLocationManager=(LocationManager)context.getSystemService(Context.LOCATION_SERVICE); //获取可用的位置信息Provider.即passive,ork,gps中的一个或几个 ListproviderList=mLocationManager.getProviders(true); for (Iterator iterator = providerList.iterator(); iterator.hasNext();) { String provider = (String) iterator.next(); System.out.println("provider="+provider); } //在此采用GPS的方式获取位置信息 String GPSProvider=LocationManager.GPS_PROVIDER; Location location=mLocationManager.getLastKnonLocation(GPSProvider); if (location!=null) { double longitude=location.getLongitude(); double altitude=location.getAltitude(); System.out.println("longitude="+longitude+",altitude="+altitude); } else { System.out.println("location==null"); } //注册位置监听 mLocationListenerImpl=ne LocationListenerImpl(); mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 5, mLocationListenerImpl); } private class LocationListenerImpl implements LocationListener{ //当设备位置发生变化时调用该方法 @Override public void onLocationChanged(Location location) { if (location!=null) { shoLocation(location); } } //当provider的状态发生变化时调用该方法.比如GPS从可用变为不可用. @Override public void onStatusChanged(String provider, int status, Bundle extras) { } //当provider被打开的瞬间调用该方法.比如用户打开GPS @Override public void onProviderEnabled(String provider) { } //当provider被关闭的瞬间调用该方法.比如关闭打开GPS @Override public void onProviderDisabled(String provider) { } } private void shoLocation(Location location) { // 获取经度 double longitude = location.getLongitude(); // 获取纬度 double altitude = location.getAltitude(); String message="经度为:"+longitude+"n"+"纬度为:"+altitude; mTextVie.setText(message); } @Override protected void onDestroy() { super.onDestroy(); if (mLocationManager!=null) { mLocationManager.removeUpdates(mLocationListenerImpl); } } }
main.xml如下:
如有疑问请留言或者到本站社区交流讨论,本站关于Android开发的文章还有很多,电脑维修网希望大家多多搜索查阅,感谢阅读,电脑维修网希望能帮助到大家,谢谢大家对本站的支持!
上一篇:Unity 安装个人免费版步骤详解
下一篇:WPS中怎么使用公式编辑器?
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工