具体导入jar包和申请API key请参照:http://api.amap.com/location/guide
思路和使用Android自带GPS一样,详见:http://blog.csdn.net/h573406032/article/details/22788999
上代码:功能,使用高德定位SDK定位
MainActivity.java
public class MainActivity extends Activity implements AMapLocationListener {
private LocationManagerProxy locationManager;
private TextView myLocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
myLocation = (TextView) findViewById(R.id.textView);
locationManager = LocationManagerProxy.getInstance(MainActivity.this);
// API定位采用GPS定位方式,第一个参数是定位provider,第二个参数时间最短是1000毫秒,第三个参数距离间隔单位是米,第四个参数是定位监听者
locationManager.requestLocationUpdates(
LocationManagerProxy.GPS_PROVIDER, 1000, 0, this);
}
@Override
protected void onPause() {
super.onPause();
if (locationManager != null) {
locationManager.removeUpdates(this);
locationManager.destory();
}
locationManager = null;
}
@Override
protected void onDestroy() {
if (locationManager != null) {
locationManager.removeUpdates(this);
locationManager.destory();
}
locationManager = null;
super.onDestroy();
}
/**
* 此方法已经废弃
*/
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
/**
* gps定位回调方法
*/
@Override
public void onLocationChanged(AMapLocation location) {
if (location != null) {
Double geoLng = location.getLongitude();//经度
Double geoLat = location.getLatitude();//纬度
String str = ("定位成功:(" + geoLng + "," + geoLat + ")"
+ "\n精 度 :" + location.getAccuracy() + "米"
+ "\n定位方式:" + location.getProvider());
myLocation.setText(str);
}
}
}
API key 的位置
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="这里填写API key" />
权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />