2012-08-08 57 views
0
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不知道该怎么办。这个类应该返回我的位置和实际返回0.0 0.0

我使用这个类像这样

mylocation = new MyLocation(this);

我有GPS和网络启用时我启动应用程序,所以这是没有问题的......

+0

你有你的Manifest.xml正确的权限? – tolgap 2012-08-08 11:39:57

+0

您是否添加了获取用户位置的权限? http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_COARSE_LOCATION和http://developer.android.com/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION – 2012-08-08 11:40:13

+0

如果您使用的是仿真器为了测试这个功能,它将返回0.0,0.0。 – Midhu 2012-08-08 11:47:36

回答

1

尝试去外面(我不这也意味着这一点)。有时候,GPS在室内没有收到信号,所以你可能不得不在户外的一个开阔的地方获取实际的数据。如果GPS找不到信号,它将返回0.0,0.0。

编辑:另外,我注意到你不重写任何的GPS方法。尝试为那些(即onLocationChanged,onProviderEnabled,onProviderDisabledonStatusChanged)添加@Override。这可能有帮助。

编辑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 

    } 

} 
+0

好!我会尝试,我会等待一段时间! – exilonX 2012-08-08 11:56:29

+0

如果这不起作用,请尝试刚添加到“编辑:”旁边的部分。让我知道这是否适合你。 – Mxyk 2012-08-08 12:00:46

+0

我去了外面没有任何改变...尝试编辑部分 – exilonX 2012-08-08 12:14:48