Java 如何获取我的位置?

Java 如何获取我的位置?,java,android,Java,Android,我是android地图新手我有以下代码: enter codepublic class MapsActivity extends FragmentActivity implements GoogleMap.OnMyLocationButtonClickListener, GoogleMap.OnMyLocationClickListener, OnMapReadyCallback { private GoogleMap mMap; Button req_button; Stri

我是android地图新手我有以下代码:

enter codepublic class MapsActivity extends FragmentActivity implements GoogleMap.OnMyLocationButtonClickListener,
    GoogleMap.OnMyLocationClickListener,
    OnMapReadyCallback {

private GoogleMap mMap;
Button req_button;
String[] lat;
String[] lon;
String[] id;
String[] emails;
double latitude,lonitude;
int result_search,StatusChange_customer;
String params_search ,Status_cheked_customer,params_checked_customer,Status_cheked_customer_rating;
public Handler mHandler;
Location location;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

    Intent intent1 = getIntent();
    lat = intent1.getStringArrayExtra("latitute");
    lon  = intent1.getStringArrayExtra("longitude");
    id = intent1.getStringArrayExtra("id");
    emails  = intent1.getStringArrayExtra("emails");
    latitude=intent1.getDoubleExtra("MyLat",0);
    lonitude=intent1.getDoubleExtra("MyLon",0);
    req_button =(Button)findViewById(R.id.R_id);
    this.mHandler = new Handler();

    this.mHandler.postDelayed(m_Runnable,5000);

}

private final Runnable m_Runnable = new Runnable()
{
    public void run()

    {

        Search_for_Accepted_Job();
        Toast.makeText(MapsActivity.this,"in runnable",Toast.LENGTH_SHORT).show();

        MapsActivity.this.mHandler.postDelayed(m_Runnable, 10000);
    }

};

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    LatLng [] sydeny = new LatLng[lat.length];
    mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
    // Add a marker in Sydney and move the camera
    for (int i=0 ; i< lat.length;i++) {
        sydeny[i] = new LatLng(Double.parseDouble(lat[i]), Double.parseDouble(lon[i]));

    }
    for (int i=0 ; i< sydeny.length;i++) {
        mMap.addMarker(new MarkerOptions().position(sydeny[i]).title(emails[i]+ " " + id[i]));
      //  mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydeny[i], 5));
    }
   LatLng sydeny1 = new LatLng(latitude,lonitude);
    mMap.addMarker(new MarkerOptions().position(sydeny1).title("Your location" ));
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydeny1, 5));*/

   mMap.setMyLocationEnabled(true);
    mMap.setOnMyLocationButtonClickListener(this);
    mMap.setOnMyLocationClickListener(this);



}



public void Request(View view) {

    Toast.makeText(this," Request",Toast.LENGTH_SHORT).show();
  for (int i=0; i< lat.length;i++)
    {

            send_request(id[i]);

    }
    req_button.setEnabled(false);
}


@Override
public boolean onMyLocationButtonClick() {
    Toast.makeText(this, "MyLocation button clicked", Toast.LENGTH_SHORT).show();
    return false;
}

@Override
public void onMyLocationClick(@NonNull Location location) {
    Toast.makeText(this, "Current location:\n" + location, Toast.LENGTH_LONG).show();
    lonitude=location.getLatitude();
    lonitude=location.getLongitude();
} 

我的问题是如何使用这个方法的经纬度,我的意思是如何得到我所在位置的经纬度,因为它是正确的,我需要它来计算我和其他地方之间的距离

要在应用程序中正确使用位置,您需要处理请求用户权限以在设置中打开位置(如果已关闭),然后按照文档中的步骤操作:


为了准确回答您的问题,您是否尝试过
location.getLatitude()
location.getLatitude()

给我相同问题的链接,这是你拒绝的第二个问题,我认为你没有仔细阅读这个问题,我已经尝试过了,但是Location.getLatitude()不适用于实时跟踪,这个接口给出了我的准确位置和准确的lat和lot,但问题是我不知道如何使用这个值,你需要实现这个来接收实时更新
 public void onMyLocationClick(@NonNull Location location) {
    Toast.makeText(this, "Current location:\n" + location, Toast.LENGTH_LONG).show();