这个类应返回我的位置并实际返回0.0 0.0

时间:2012-08-08 11:38:30

标签: android google-maps location

public class MyLocation  {
Context mContext;
LocationManager mlocManager;
LocationListener mlocListener;
double  lat=0,lng=0;

public MyLocation(Context mContext) {

    super();
    this.mContext = mContext;
    mlocManager = (LocationManager)mContext.getSystemService(mContext.LOCATION_SERVICE);
    mlocListener = new MyLocationListener();
    mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);

}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
    private static final int TWO_MINUTES = 1000 * 60 * 2;


    public void onLocationChanged(Location loc) {
        loc.getLatitude();
        loc.getLongitude();

        String Text = "My current location is: " +"Latitud = " + loc.getLatitude() +"Longitud = " + loc.getLongitude();
    //  Toast.makeText( mContext,Text,Toast.LENGTH_SHORT).show();
        lat = loc.getLatitude();
        lng = loc.getLongitude();
    }

    public void onProviderDisabled(String provider){
        Toast.makeText(mContext,"Gps Disabled",Toast.LENGTH_SHORT ).show();
    }

    public void onProviderEnabled(String provider){
        Toast.makeText( mContext," Gps Enabled" ,Toast.LENGTH_SHORT).show();
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }
  }
}

这个课程没有返回它应该是什么...我的位置总是0.0 0.0不知道该怎么做。

我像这样使用这个类

mylocation = new MyLocation(this);

启动应用程序时启用了gps和网络,所以这不是问题......

1 个答案:

答案 0 :(得分:1)

尝试去外面(我也不是说这是进攻性的)。有时GPS不会在室内接收信号,因此您可能必须在开放区域外向外获取实际数据。如果GPS无法找到信号,则返回0.0,0.0。

编辑另外,我注意到您没有覆盖任何GPS方法。尝试为这些添加@Override(例如onLocationChangedonProviderEnabledonProviderDisabledonStatusChanged)。这可能会有所帮助。

编辑2 :如果仍然无效,请转到手机的设置,然后选择“位置和安全设置”(设备之间的名称可能略有不同),并确保“使用”无线网络“和”使用GPS卫星“都被检查。

编辑3:
这是它自己的类,在@Override上没有错误:

import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;

public class MyLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}