import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.os.Bundle;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 当位置发生变化时,会调用此方法
double latitude = location.getLatitude();
double longitude = location.getLongitude();
// 在这里处理获取到的经纬度信息
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
// 地址1
String address1 = "北京市朝阳区";
// 地址2
String address2 = "上海市浦东新区";
// 获取地址1的经纬度坐标
double[] location1 = getCoordinates(address1);
// 获取地址2的经纬度坐标
double[] location2 = getCoordinates(address2);
if (location1 != null && location2 != null) {
// 创建Location对象
Location loc1 = new Location("");
loc1.setLatitude(location1[0]);
loc1.setLongitude(location1[1]);
Location loc2 = new Location("");
loc2.setLatitude(location2[0]);
loc2.setLongitude(location2[1]);
// 计算两个地址之间的距离
float distance = loc1.distanceTo(loc2);
// 打印结果
System.out.println("两个地址之间的距离:" + distance + " 米");
} else {
System.out.println("无法获取地址的经纬度坐标");
}
}