-步骤----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1:权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
2:获得设备
LocationManager lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
//检测设备是否可用
if (lm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER))
//如果设备不可使用跳到设置界面
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0);
3:设置服务提供者并绑定监听器-获得设备所提供的服务
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2*1000, 100, new MyLocationListener());
其中MyLocationListener实现LocationListener接口;并在其方法中接收服务信息
注意:在给出服务提供这的时候可以根据要求获得最佳提供者(卫星或者基站)
例子如下:
LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// 查找到服务信息
// Criteria criteria = new Criteria();
// //设置精度
// criteria.setAccuracy(Criteria.ACCURACY_FINE);
// //设置是否取得海拔
// criteria.setAltitudeRequired(false);
// //是否获得方向
// criteria.setBearingRequired(false);
// //是否允许产生费用
// criteria.setCostAllowed(true);
// //耗电情况
// criteria.setPowerRequirement(Criteria.POWER_LOW);
// //获取最合适的provider,第二个参数表示在所有中选择还是只在可用的当中选择
// String provider = lm.getBestProvider(criteria, true);
// Location location = lm.getLastKnownLocation(provider); // 通过GPS获取位置
lm.requestLocationUpdates(provider, 1*1000, 50, new LocationListener());
GeoCoder类的使用---------------------------------------------------------------------------------------------------------------------------------------------
LocationManager 通过基站和卫星获得经纬度。
GeoCoder可以通过名名称查找经纬度和通过经纬度查找地区的名称
List<Address> list = coder.getFromLocationName("开封市", 3);
List<Address> listtow = coder.getFromLocation(34.797683, 114.307624, 3);
注意:使用Geocoder类是通过GoogleAPI来获得的所以在做测试的时候需要建立GoogleAPI的虚拟机(2.1版本一下可以用)
---地址解析http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/
根据指纹认证来获取密钥
http://code.google.com/intl/zh-CN/android/maps-api-signup.html
GoogleMap的使用-----------------------------------------------------------------------------------------------------------------------------------------
1)生成MD5指纹 keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
2) http://code.google.com/android/maps-api-signup.html 输入MD5指纹,得到map api 密钥
1:一个KEY 给软件签名
2:通过KEY获得 MD5指纹认证: D1:9B:EA:48:71:BB:92:91:79:77:89:04:54:62:D0:16
3:通过指纹认证获得密钥
http://code.google.com/android/maps-api-signup.html
输入MD5指纹,得到map api 密钥
下面是一个 xml 格式的示例,帮助您了解地图功能:
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="true"
android:clickable="true"
android:apiKey="05uKvBUHeNd5QDGHEPwuS_Cesm-eAm9tUCgVhLA"
/>
注意:
1:activity继承MapActivity
2: 获得com.google.android.maps.MapView